gpt4 book ai didi

mysql - 目录中类似标签类别的表格设计

转载 作者:行者123 更新时间:2023-11-29 14:51:16 25 4
gpt4 key购买 nike

我注意到大多数类似目录的网站都有由网站管理员创建和管理的类别,而用户则选择/选择他们想要发布到的类别。对于这样的实现,总是有 2 个表;一个类别表和一个列表表,其中列表表将由包含类别 ID 的列组成。

如果只有几个类别并且您知道现有的类别,则此设计很简单。

但是如果您有很多类别(即 2000 多个类别)或者您允许用户指定自己的类别(即标签)怎么办?

如果我们在列表中创建一个类别列,它将包含重复的类别。同样,如果我们创建一个单独的类别表,它也会包含重复的内容,因为类别是由用户指定的。

针对这种情况设计数据库的最佳实践是什么?

提前谢谢您。

最佳答案

类别的数量并没有真正改变任何东西,但是用于选择 10 个类别中的 1 个类别的 UI 看起来与具有 2,000 个类别的 UI 非常不同。

通过向数据库表添加适当的约束可以防止重复。当用户可以自己添加标签时,这一点也不会改变。列表与类别具有一对一或一对多的关系。前者最好作为列表表中类别表的外键来实现。后者最好实现为具有两个外键的附加表;一个用于类别,一个用于列表。将主键设置为由列表键和类别键组成的复合键。

但是,数据库无法强制执行的是唯一的“含义”。用户可以独立创建以下类别:

  • Java 编程
  • Java 编程
  • 编程,java
  • 关于 Java 的一切

...它们可能都表示相同的意思。最后一个类别也可能是与咖啡制作相关的类别,但我不会打赌:)

Stackoverflow 必须处理这个问题,我怀疑您可以通过搜索 Meta stackoverflow 找到有关如何处理的信息。

关于mysql - 目录中类似标签类别的表格设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5698078/

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