我有一個名爲product的模型和表。每個產品將有大約100個屬性。每個屬性都是一個字符串。我應該簡單地將所有這些屬性添加到產品表中嗎?或者,創建幾個子模型並通過has_many/belongs_to關聯訪問它們會更好嗎?我打算有一個頁面來加載所有這些屬性。我將是唯一設置這些屬性的人。有其他方法可以考慮這麼做嗎?也許我可以將所有內容保存到單個文本數據類型的行中,並以某種方式對其進行格式化,甚至只是將其全部寫入常規HTML中。存儲單個記錄的許多屬性
0
A
回答
0
我想推薦以下設計。
Attribute Table -- AttributeId (primary key), AttributeName
Product Table -- ProductId (primary key),
other product related informations(except attributes).
ProductAttribute Table -- ProductId(foreign key), AttributeId(foreign key)
如果每個屬性將爲每個產品不同的值,那麼你可以考慮ProductAttribute表是這樣的:
ProductAttribute Table -- ProductId(foreign key), AttributeId(foreign key),
AttributeValue
編輯:
你不需要做100表。根據我的理念,你需要3張桌子。現在,Attribute
表將包含100行,每個屬性一個。假設您有5個屬性a1, a2, a3, a4, a5
和兩個產品p1,p2
。然後,表格將如下所示:
Attribute
---------
AttributeId | AttributeName
---------------------------
1 | a1
2 | a2
3 | a3
4 | a4
5 | a5
Product
-------
ProductId | ProductName
-----------------------
1 | p1
2 | p2
ProductAttribute
----------------
ProductId | AttributeId | Value
--------------------------------
1 | 1 | value1
1 | 2 | value2
1 | 3 | value3
1 | 4 | value4
1 | 5 | value5
1 | 1 | value6
1 | 2 | value7
1 | 3 | value8
0
XML是最佳答案。您仍然可以爲每一行使用不同的屬性。 和數據將在單個查詢中可用。
相關問題
- 1. 許多導航屬性的C#Entityframework保存記錄
- 2. 許多SVN存儲庫或許多目錄的存儲庫?
- 3. 如何找出通過多種活動記錄屬性許多
- 4. 返回從許多單個記錄到許多表
- 5. 使用rdoc記錄多個屬性
- 6. 關於表示具有許多屬性的不同記錄
- 7. 如何將多個值存儲在單個屬性中
- 8. GAE數據存儲中單個屬性的大小是多少
- 9. 在Neo4j的單一屬性中存儲多個值Lucene索引
- 10. 用於更新多個記錄上的單個屬性的最佳實踐
- 11. 很多記錄在html5本地存儲?
- 12. Laravel保存多個記錄
- 13. 有什麼優點,並在多個表的拆分記錄記過或者使用單個表在單個表中存儲多個記錄
- 14. 存儲屬性的Swift Type屬性
- 15. Mysql的轉儲多個記錄
- 16. 如何爲單個模型保存多個單獨記錄
- 17. j2me中的記錄存儲
- 18. 刪除記錄記錄存儲
- 19. 多個表中的更新記錄屬性
- 20. 選擇多個記錄的存儲過程
- 21. nhibernate存儲過程中的多個記錄集
- 22. 在數據存儲中存儲和檢索多值屬性
- 23. 更新單個記錄後審計表中的多個記錄
- 24. 分組在一個單獨的記錄多個記錄
- 25. 的MySQL/PHP接合單個記錄到多個記錄
- 26. 將多個外鍵存儲在一個屬性
- 27. 存儲其屬性字段有多個值的對象
- 28. PHP - 存儲多個屬性最有效的方式
- 29. 將許多CVS模塊轉換爲單個SVN存儲庫
- 30. Rails - 單個屬性的多個條目
屬性有哪些例子?每個記錄是否具有相同的屬性? –
是的,他們將具有相同的屬性。一些例子:價格,尺寸,重量等 – chief
讓一張桌子上的每一件東西都具有的優點是簡單,執行速度快,編輯更容易,特別是如果您使用數據綁定控件。缺點是添加或修改屬性,您必須更改數據庫和代碼。我已經看到設計將屬性與屬性的類型一起保存在單獨的表中。由於代碼必須處理屬性類型,因此速度更慢,更復雜。但是,添加屬性要容易得多。既然你有一對一的關係記錄/屬性,每個屬性都不相同,我會把它們放在一張表中。 –