我正在從頭開始設計一個程序及其數據庫。對於以下情況(SQL 2008 R2,C#),最佳數據庫設計是什麼:數據庫的最大可擴展設計
該程序將銷售給具有不同需求的各種客戶。這就是爲什麼我試圖儘可能擴展它。在Code-Side中,我使用DI作爲基於插件的體系結構。
但是對於數據庫端:
每個客戶可能想也可能不想向用戶/實體添加額外的信息。使用不同的數據類型。我應該如何設計我的數據庫,以便能夠以最少的觸摸輕鬆添加其他數據?
- 在所需表格中創建一個附加列,其中存儲有關XML或CSV格式實體的任何其他信息,並在代碼隱藏中解析。
- 創建一個新表,其中包含一個實體的ID,並具有一個鍵/值對列和一個DataType列(例如
Key="IsPremiumMember", DataType="boolean", value="true"
)並將其解析爲代碼隱藏。
您會建議哪種方法?爲什麼?
我應該考慮的其他解決方法?
謝謝。
誰將託管數據庫?它會在您的服務器上還是在客戶的服務器上? – 2011-05-25 13:25:47
這是對他們的。 – Kamyar 2011-05-25 13:27:06
我會盡量避免** EAV **模式(鍵/類型/值) - 它非常靈活*,但是從SQL性能/可編程性角度來看,這是一個完全的噩夢。請參閱[Joe Celko關於避免銷燬EAV](http://www.simple-talk.com/sql/t-sql-programming/avoiding-the-eav-of-destruction/)或[第5點中的第3點避免簡單的數據庫設計錯誤](http://www.simple-talk.com/sql/database-administration/five-simple--database-design-errors-you-should-avoid/) – 2011-05-25 13:56:54