繁体   English   中英

数据库表设计:规范化与否

[英]Database Table Design: normalization or not

Web Configurator(用于可定制的电子文章)应通过Web用户界面将用户生成的配置保存到MySQL数据库。

可用选项是静态的,数量为10到20个不同的选项。

我不知道哪种解决方案有更多优势。 我正在征求一些建议,因为这是数据库设计中的常见问题。

解决方案1

1张桌子:

配置:

  • ID
  • 选项1
  • 选项2
  • 2选项
  • 等等

解决方案#2

2个表和1个RelationTable(请参见下文)

配置:

  • ID

选项:

  • ID
  • 名称

对我而言,这将是与联接表的单向OneToMany关联,还是与选项侧的与ForeignKey的单向ManyToOne关联。

问题是,是否有一个包含约10至20列的表 ,每个选项每个都有,最终,如果需要新的选项,则需要不时更改数据库架构

要么

每个配置条目具有大约10到20个相关的选项条目

配置表每月可以增长到大约2000个配置=>每月20000至40000个选项条目。

如果选项表中的条目超过1.000.000,则查询配置及其相关选项的查询时间可能会很高,对吗(解决方案1)? 查询约20列的单个表的行是否是更好的选择(解决方案1)? 也许这也是一个标准。 任何解决方案都有缺点/优点/缺点吗?

我会选择解决方案2。 我还将在options表的应用程序中添加缓存层,该表将为每个请求的configuration_id创建一个json对象(数组,列表或您的语言支持的任何内容),并且所有选项都已被查询,处理并可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM