Junction Table 连接 3 个表?

Junction Table to connect 3 tables?

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

我在正确的轨道上吗??

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

非常感谢。

克里斯

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

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

那么你应该像这样做一些模型:
部门

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)的 "junction"。您将通过输入相应的外键正确添加项目。

P.S.: 如果您的其中一个关系是 n:n(比如一个项目可以分为几个类别),那么您需要在这些关系之间添加一个新的 entity/table。