Web配置器(用於可定製的電子文章)應通過Web用戶界面將用戶生成的配置保存到MySQL數據庫。數據庫表設計:是否規範化
可用的選項是靜態的,數量爲10到20個不同的選項。
我找不出哪個解決方案更具優勢。我正在尋求一些建議,因爲這是數據庫設計中的一個常見問題。
溶液#1
1表:
配置:
- ID
- 選項1等
溶液#2
2表和1 relationTable(見下文)
配置:
- ID
選項:
- ID
- 名
- 值
不要緊,對我來說,是否將與連接表或對期權的一側的外鍵單向多對一關聯一個unidirectinal一對多關聯。
的問題是,是否有一個表約10至20列,每次每個選項,最終需要從時間更改數據庫模式時,如果有新的選項是必需的
OR
有大約10至20相關的選項條目每個配置項。
配置表可能增長到每月約2000個配置=>每月20000到40000個選項條目。
查詢配置及其關聯選項的查詢時間,如果選項表超過1.000.000個條目可能很高,右(解決方案#1)?查詢具有大約20列的單個表的行是否更好?(解決方案1)? 也許這也是一個標準。 任何解決方案是否存在缺點/優缺點?
恕我直言:如果每個配置都必須存在每個選項,則解決方案1。否則解決方案2.它只是更穩定。 – Mikey
@Mikey有些選項可能爲空,所以解決方案仍然是一個選項。解決方案2對於增強更加穩定,但我想知道這些查詢是否會變得無用。我只會編輯我的文章並提及這個想法。謝謝! –
那麼一些選項是不可空的?這些選項必須位於同一個表中(不可爲空列)。在其他情況下,不能確保他們的存在。性能可能是一個問題,但它是一個優化:對於那個和現代的數據庫來說,在聯接方面相當不錯。 – Mikey