方案一。
就一個產品表 product,然後這個表裡包括所有的產品屬性,每個屬性用一個欄位表示。
方案二。
還是只用一個產品表 product 。
與方案一不同的是,私人屬性設定為一個欄位 Private_Attribute ,
然後每個產品的多個私人屬性都放這個欄位裡,並且用一個分隔字元號隔開
比如書籍,就是 它在 Private_Attribute 欄位裡 的表示就是 :
出版社||||作者||||出版日期
方案三;
產品表 + 私人屬性工作表 + 私人屬性值 表
產品表 裡 就包括一些產品的公用屬性
私人屬性工作表 裡 設定私人屬性的名稱 ,比如出版社 、作者 、出版日期
私人屬性值 表 裡就是 每個產品 私人屬性的值
例如:
產品表:
product_id = 1 ; product_name =《ajax實踐》
私人屬性工作表:
Attribute_id = 1 ; Attribute_name = 出版社
Attribute_id = 2 ; Attribute_name = 作者
私人屬性值表:
id = 1 ; product_id = 1 ; Attribute_id = 1 ; Attribute_value = 清華出版社
id = 2 ; product_id = 1 ; Attribute_id = 2 ; Attribute_value = 老外
方案四;
每個不同類型的產品單獨設計一個資料庫,比如一個書籍的資料表 product_book,一個MP3的資料表 product_mp3
可能每種設計都有自己的優劣,主要看應用的場所
我這個主要是想應用在電子商務上,所以同時會有定單操作
這是常見的四種方式。一直在尋找一種更好一點的解決方案。求解中。。。
歡迎評價
我自己的一種見解:把產品都放一張表裡面。把常用的一些屬性(經常查詢的那些)設定獨立欄位。
那些不常用的,都放一個欄位裡面。用一個大字串。需要查詢的時候模糊尋找(可能效率不高)
轉:http://www.fleaphp.org/bbs/viewthread.php?tid=298