我正在为客户设计一个系统,他可以为他销售的各种产品创建数据表单。 他将使用的字段数不会超过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