gpt4 book ai didi

mysql - 如何在数据库中存储可变大小的关系?

转载 作者:行者123 更新时间:2023-11-29 06:52:02 25 4
gpt4 key购买 nike

首先,我作为一个对数据库相对缺乏经验的人来找你,所以对于我犯的任何错误,我深表歉意。

在我当前的数据库中,存储了两类内容:人(以及有关这些人的信息)和他们喜欢的报纸。我的主表看起来像这样:

enter image description here

这很有效,但是现在随着我的应用程序的增长,我现在开始找到喜欢不止一份报纸的人!我的(大概是无知的)解决方案是创建一个新列 - 称为 multiple_favourite - 其中要么有"is",要么有“否”。

如果它包含“否”,则意味着该人只有一份最喜欢的报纸,并且它列在“favourite_newspaper”列中紧邻它的旁边。然而其中有一个"is",则表示该人喜欢不止一份报纸。

然后我的应用程序将导航到另一个表,它看起来像这样:

enter image description here

现在,每当我的应用程序遇到在“multiple_favourite”行中输入“yes”的人时,它都会导航到此表,找到相关的用户 ID,并提取列表。就其工作而言,这是一个很好的解决方案,但每次想要查找一些数据时都必须解压缩列表,这感觉是非常糟糕的做法。

此外,它使得“multiple_newspapers”表的过滤结果几乎不可能。例如,假设您想找出每个喜欢“洋葱”和“每日邮报”的人的名字。在此设置中执行此操作的唯一方法是迭代表的每一行,解压缩列表,并检查这两项是否存在。

这对于小型数据库来说效果很好,但是当涉及到可扩展性时,这肯定会失败。

因此,我的问题是,如何解决这个问题?感觉一定有一个明显的解决方案,我正在浏览,但我似乎找不到它。

非常感谢任何帮助!

谢谢。

最佳答案

将其标准化,有一张报纸 table ,并且两者之间存在多对多关系。

关于mysql - 如何在数据库中存储可变大小的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47061346/

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