2009-08-21 70 views
1

我有約15天的編程任務,我決定做一種購物車/網絡銷售的東西。ASP.net網站/項目可以有多個數據庫嗎?

我會和產品,價格,圖片數據庫等

我想具有處理的訂單另一個數據庫等

我應該只是做一個可行的組合(使一個數據庫)還是應該爲這些情況使用單獨的數據庫?

ps。我不是在談論桌子,我正在談論數據庫。 謝謝你們

+1

數據庫應包含與一件事的一切。這聽起來像你處理的訂單與一件事有關 - 一家商店。適當的解決方案是建立一個商店數據庫IMO。 – 2009-08-21 13:24:24

+0

爲什麼你需要多個數據庫?您尚未詳細說明您的方案,以突出顯示您需要多個數據庫的原因。 – Charlie 2009-08-21 13:26:56

+0

訂單和產品是相關的,所以將它們保存在一個數據庫中。但是,如果您的網站有購物車和論壇,則可以有充分的理由使用兩個數據庫:一個用於論壇,另一個用於購物車。但總的來說,這也將是兩個項目。儘管如此,它可以結合在一個應用程序中。 – 2009-08-21 13:53:34

回答

11

除非你有一個很好的理由有幾個數據庫,堅持一個。

話雖如此,單個項目的數據庫數量沒有技術限制。

編輯:有多個數據庫的原因。除了已經提到的可伸縮性選項之外,如果您從應用程序的性質中看到這些舊記錄不常需要,您可能還想歸檔一些非常古老的東西(例如,按年份)。

+2

可擴展性將是一個很好的理由有幾個邏輯數據庫......但我從這個問題的印象,它不會成爲一個網站與數百萬併發用戶:) – 2009-08-21 13:24:46

+0

@Mark Seemann:你永遠不知道。也許傑夫也在SO工作的同時匿名詢問這些問題。 – 2009-08-21 13:25:58

+0

@NewInTown:你能舉一個「非常好的理由」的例子嗎?我對ASP.Net項目非常青睞。 – 2009-08-21 13:26:00

0

雖然我確定有很多理由可能需要爲此單獨建立一個數據庫,但我會堅持使用單個數據庫和訂單表(因爲我猜你會參考這些相同的產品在訂單內)。它會使外鍵引用....簡單....

0

如果你使用一個單一的數據庫,可以強制實現數據完整性 如果您使用了數據庫,您可以分發充電

0

保持到單一數據庫,除非有實際的理由。例如,如果您混合預先構建的應用程序,並在加載自己的表之前刪除所有表格。即使這樣,你可以破解他們的腳本,並與1分貝去。另外,除非你有很多人和你一起工作 - 在15天內創建一個可行的購物車將是一個有點挑戰。你可能真的想看看你可以修改的操作系統購物車。如果你是一個網絡形象的傢伙,那麼DashCommerce +還有其他一些人。如果你進入MVC,你可以修改Kona。

0

在企業級別,您希望限制需要支持的數據庫數量。

在SQL 7/2000中,我們將此舉推向了極致,併爲30多個應用程序使用了相同的數據庫。這些天我們稱之爲垃圾填埋場數據庫 - 這是難以置信的支持。我們最終決定採用把小一次性應用到垃圾填埋場數據庫,但創造任何新的數據庫,有超過10桌,100K +的記錄,等等。

隨着2005年,我們都希望能使用架構分離,因此數據庫管理員SQL可以擁有更少的數據庫,但開發人員可以依靠模式來了解哪些對象屬於哪些應用程序。我們還沒有完善這個概念,但我相對確定它會奏效。

0

我看不出有任何理由讓您使用多個數據庫。 我可以看到多個數據庫的唯一優點是:

  • 縮放 - 如果你是一個大的商業網站,它會更容易使用多個數據庫規模(你可以把每一個不同的服務器上)。
  • 安全 - 如果你需要某些信息是安全得多,你不希望把它保存有用戶創建的內容在同一個數據庫(因此可能會被利用,即SQL注入),可以單獨給另一數據庫在另一臺內部網絡上的另一臺機器

主要缺點是開發的複雜性和額外的維護。 通常你可以在沒有其他數據庫的情況下實現一些目標。 例如,如果是爲了安全起見,我首先嚐試所有的查詢清理和數據庫身份驗證方案似乎更具成本效益

+0

另一個原因可能是像日誌記錄。您可能會調整主數據庫以進行繁重的讀取活動,而日誌記錄數據庫可能會有大量寫入活動。我親眼目睹了一些大型項目。 – 2009-08-21 13:37:07

0

購買的大多數購物車和電子商務解決方案使用一個數據庫。你爲什麼想着多個數據庫?

你想多DBS來獲得性能優勢?您可以使用複製。多DBS的問題

一個實例可能是外鍵。有些dbs,你不能在dbs上創建它們。

0

目前我使用的是實際使用三個數據庫,有很好的理由太多的項目。一個數據庫用於用戶向系統提供數據並查看這些數據。用戶只是內部的同事,他們將我們的應用程序的數據保持最新。 第二個數據庫包含來自此用戶數據庫的摘錄,並將其發送給我們的軟件產品的客戶。這些客戶不能修改我們的數據,我們也不想讓他們訪問實時數據,特別是因爲我們首先要確保數據是有效的。 第三個數據庫用於通用錯誤/消息記錄和維護用戶數據庫。

之所以將整個項目在三個數據庫被部分安全完成。如果有人可以訪問一個數據庫,其他兩個仍然是安全的。如果一個人倒下,另外兩個人仍然會有用。三個數據庫中的數據完全不相關,即使來自一個數據庫的數據用於爲其他兩個數據生成數據。這是使用多個數據庫的最重要條件:數據不應該相互關聯。 (儘管一些DBMS系統確實允許這些跨數據庫鏈接!)

0

我目前的項目至少使用了四個數據庫,但這是因爲我的項目是一個後期添加,旨在從其中三個數據中提取數據並將其顯示在地圖。第四個數據庫是作爲項目的一部分創建的,用於存儲有關地圖和項目用戶的信息。

如果我不得不添加新的信息不符合我創建的數據庫,我會考慮添加一個全新的數據庫。但是,確保所有數據庫工作(SP,視圖,表結構)在三種環境(本地,測試,生產)上保持一致的成本很高。我不確定我想要爲我自己創建的多個數據庫執行此操作。 (我已經很幸運,這是別人的工作來維持我的項目使用其他數據庫。)

0

 
First, it's perfectly okay to use multiple databases, 
but unless you have a compelling reason, you're better 
off sticking to one.

I don't know what RDBMS you are using for your project, but most of them (like Oracle, SQLServer) offer a concept of schemas. So, you can use one database and create multiple schemas to segregate your tables.

相關問題