gpt4 book ai didi

MySql - 10 个(非常)相似的表或 1 个表

转载 作者:行者123 更新时间:2023-11-29 18:37:29 31 4
gpt4 key购买 nike

tl;博士在底部。

所以,我有一个具有大致以下架构的应用程序:

`budget`hasMany =>
`item1`
`item2`
...
`item10`

现在,这 10 个项目共享一组23 个字段,这些字段在所有 10 个项目中都匹配。至少其他 20 个字段在 7 个或更多项目中共享。事情就是这样的,现在回想起来这很愚蠢,但现在看来这是正确的事情。

考虑到这一点,我想:为什么不让 9 个表消失,创建 1 个包含所有项目的所有字段的表,因为无论如何都有很多东西是共享的。

我会得到什么?许多代码将会消失。很多 table 都会消失。检索预算及其所有项目仅需要与单个表的联接,而不是 10 个联接。

我的怀疑来自于这个新的表格大约有 80 列。所有小列,主要存储整数、 double 或小型 varchar。尽管如此,80 篇专栏还是给我留下了深刻的印象。另一个问题是,将来我不会有 10 个表,每个表有 1kk 条记录,而是有 1 个大表,每个表有 10kk 条记录。

所以,我的问题是:为了消除一些冗余、减少代码量并增强检索和使用数据的能力是否值得进行更改?

tl;dr 考虑到这10个表共享很多公共(public)字段(但新表仍然有80列),我是否应该将10个表合并为1个表,以减少表的数量、应用程序中的代码量以及增强我检索数据的方式?

最佳答案

据我所知,这可能不是很多,最好将数据库分割成单个部分(就像目前的情况一样)。调用它来标准化数据库(“https://en.wikipedia.org/wiki/Relational_database”)。

它限制了数据库可能发生的错误,并降低了通过更新等更改内容的风险,如果您想插入一项而不是另一项,则效果更好(如果您只有 1 个表,所有其他表将为空)并且您总是必须返回并获取信息等,这将使插入语句变得更加困难)。

如果您总是一次插入所有 20 个项目,并且始终基于所有这些项目进行查询(不对单个项目进行高级计算),那么将所有内容放入一个表中可能是合理的。但是,如果您只想插入几个项目,然后想要进行更复杂的计算,我建议您将它们分开并通过某种 Customer_Id 或 w/e 链接

关于MySql - 10 个(非常)相似的表或 1 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45168201/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com