我正在爲客戶設計一個系統,他可以爲他銷售的各種產品創建數據表單。 他將使用的字段數不會超過600-700(最壞的情況)。看起來他可能會在400 - 500(最大)的範圍內。一個包含許多字段或多個(數百個)字段的表的mysql表?
我腦子裏想的2種方法用於創建數據庫(使用元數據):
一)每個產品創建一個表,該表將只持有這個產品,這將導致數百表的字段必要但只有每個產品
或
b)中使用一個單一的表與所有速效表單字段(從電流300至最大700)的任何範圍,致使一個表,將有許多領域的neccessary字段其中只有約10%用於每個產品入口(產品應該通常不超過50-80字段)
哪種解決方案最好?請記住,表格的維護(創建,更新和更改)將使用元數據完成,因此我不需要手動更改表格。
謝謝!
/**** UPDATE *****/
只是一個更新,甚至在此之後很長一段時間(和聚集更多的經驗,配發),我需要一提的是不normalizing你的數據庫是一個可怕的想法。更重要的是,幾乎總是沒有規範化的數據庫(總是從我的經驗來看)表明了一個有缺陷的應用程序設計。
你好pulegium, 我也想過類似的東西,但有一個問題:字段的類型可以是從布爾到文本的任何東西。在這種設計中,沒有辦法爲ecah字段設置正確的字段類型(理論上我可以使用TEXT,因爲它可以容納我需要的任何值,但我希望爲每個字段指定正確的字段類型然後) – mspir 2010-02-26 10:26:14
,除非我有更多的field_value字段具有不同的字段類型......(field_value_int,field_value_text,field_value_decimal等)......但是,這個doesent感覺非常正確......? :) – mspir 2010-02-26 10:42:34
向'field'表中添加一個'field_type'列。這仍然會讓您不得不將所有內容都作爲文本存儲在數據庫中,但可以根據需要爲字段定義自己的驗證規則。這會給你pulegium設計的所有靈活性,再加上你不僅僅限於你的數據庫引擎支持的類型,而且還可以有,例如,,'must_be_multiple_of_five_percent'驗證(用於折扣),'week_day_name'驗證等。 – 2010-02-26 11:05:12