gpt4 book ai didi

php - 我应该制作另一个表格还是只使用数组? (归一化或不归一化)

转载 作者:行者123 更新时间:2023-11-29 05:46:13 24 4
gpt4 key购买 nike

目前的情况是主题按 3 个主要类别排序。有可能添加不止 3 个类别,但高层希望实现向主题添加不止 1 个类别的能力。

我最初的数据库设计在主题信息表中将类别 ID 作为外键。从一开始这可能是个坏主意,但我认为他们只设置了 3 个类别,这样做可以减少查询。

所以据我所知,我现在有两个选择:1) 输入 categoryID 作为我在 php 端解析的逗号分隔字符串。2) 重构DB,将categoryID拉出到自己的categoryID和topicID表中。

我想知道大家对此有何看法。我的第一直觉是重组数据库。但是当我想到第一个选项时,它是最容易实现的,并且最不可能通过改变数据库来破坏现有的东西。然而,这也可能导致反规范化,并可能导致数据不一致。

我读过,只要您接受使用不一致的数据来换取性能的风险,反规范化就可以。在您看来,我会因为这种风险而获得很多绩效吗?任何关于我在这种情况下应该做什么的意见都将不胜感激。

谢谢你的帮助,
列维

最佳答案

不要混淆非规范化(一个很好的例子是将 SO 问题的票数与问题一起保存,而不是每次从“投票”表中计算它)与逗号分隔的 id 列表令人厌恶。

建立适当的多对多关系模型;逗号分隔方法可能(并且将会)出错的地方太多了。举几个例子:

  1. 没有参照完整性。
  2. 几乎不可能用于联接。
  3. 无法充分索引;不可扩展。

关于php - 我应该制作另一个表格还是只使用数组? (归一化或不归一化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1641334/

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