Mysql 目录中类似标记的类别的表设计
我注意到,大多数类似目录的站点都有由站点管理员创建和管理的类别,而用户则选择要发布到的类别。对于这种实现,总是有2个表;类别表和列表表,其中列表表将由包含类别ID的列组成 如果只有几个类别,并且您知道手边的类别,那么这种设计很简单 但是,如果您有很多类别(即2000多个类别),或者您允许用户指定自己的类别(即标记),该怎么办 如果我们在listings表中创建一个category列,它将包含重复的类别。同样,如果我们创建一个单独的categories表,它也将包含duplicate,因为类别是由用户指定的 在为这种场景设计数据库时,最佳实践是什么Mysql 目录中类似标记的类别的表设计,mysql,database-design,Mysql,Database Design,我注意到,大多数类似目录的站点都有由站点管理员创建和管理的类别,而用户则选择要发布到的类别。对于这种实现,总是有2个表;类别表和列表表,其中列表表将由包含类别ID的列组成 如果只有几个类别,并且您知道手边的类别,那么这种设计很简单 但是,如果您有很多类别(即2000多个类别),或者您允许用户指定自己的类别(即标记),该怎么办 如果我们在listings表中创建一个category列,它将包含重复的类别。同样,如果我们创建一个单独的categories表,它也将包含duplicate,因为类别是由
提前谢谢。类别的数量并没有改变任何东西,但是从10个类别中选择1个类别的UI看起来与2000个类别的UI大不相同 通过向数据库表添加适当的约束可以防止重复。当用户可以自己添加标签时,这一点不会改变。列表与类别有一对一或一对多的关系。前者最好作为列表表中的外键实现到category表。后者最好作为带有两个外键的附加表来实现;一个用于分类,一个用于列表。使主键成为由列表键和类别键组成的复合键 然而,数据库无法执行的是一个独特的“含义”。 用户可以独立创建以下类别:
- Java编程
- Java程序设计
- 编程,java
- 关于Java的一切
Stackoverflow必须处理这个问题,我想你可以找到关于如何搜索的信息,为什么不看看wordpress的方法呢?WordPress.com非常庞大,它有2000多个标签或类别。你可以在www.WordPress.org上下载最新的WordPress。数据库模式位于普通SQL中的wp admin\includes\schema.php文件中