database - 连接 3 个表的连接表?

标签 database database-design junction-table

我是编程和数据库方面的新手。目前正在进行一个 list 项目,涉及部门(物理、化学等)、类别(物理 -> 热、化学 -> 有机)和实际实验室项目(物理 -> 热 -> 火柴棒、化学 -> 有机 -> 己烷溶液) ).我的数据库图表应该如何显示,以便我可以根据部门和类别搜索项目列表,并在添加项目时将它们分类在正确的部门和类别下。我正在创建一个连接表(部门-类别-项目),链接到部门、类别和项目详细信息(不包含 DeptID 和 CatID)表。

我在正确的轨道上吗??

希望有人能帮忙说明一下。

非常感谢。

克里斯

最佳答案

是的,您走在正确的轨道上。如果是这样的话:

  • 一个部门可以有几个类别,一个类别总是与一个部门相关
  • 一个类别可以有几个项目,一个项目总是与一个类别相关联。

然后你应该像这样做一些模型:
部门

Id | Name
---|-------
1  | Physics
2  | Chemistry

类别

Id | DepartmentId |Name
---|--------------|-----
1  | 1            |Heat
2  | 1            |...

项目

Id | CategoryId | Name
---|------------|------
1  | 2          | Match Sticks
2  | 1

您将获得与外键(DepartmentId、CategoryId)的“连接点”。您将通过输入相应的外键来正确添加项目。

P.S.:如果您的关系之一是 n:n(比如一个项目可以分为几个类别),那么您需要在这些关系之间创建一个新的实体/表。

关于database - 连接 3 个表的连接表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137138/

相关文章:

database - 如何使用数据库中的汉字?

php - 如何使用 php utf8 在数据库中插入 ö/ä/ü

asp.net-mvc - 在 ASP.NET MVC 中创建模型

database-design - 管理数据库引用数据及其相关代码

MySQL - 将来自同一个表的两个元素链接到另一个表中

database - 2 个关于数据库开发哲学和最佳实践的问题

mysql - 没有主键的连接表

php - 如果数据库中的条目被删除,如何检查 PHP?

sql - 联结表的主键/聚集键

mysql - SQL连接具有多对多关系的联结表