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