【问题标题】:Junction Table to connect 3 tables?连接表连接 3 个表?
【发布时间】:2015-03-24 02:23:32
【问题描述】:

我是编程和数据库方面的新手。目前正在从事一个涉及部门(物理、化学等)、类别(物理 -> 热、化学 -> 有机)和实际实验室项目(物理 -> 热 -> 火柴棒、化学 -> 有机 -> 己烷溶液)的库存项目)。我的数据库图应该如何看起来像这样,我可以根据部门和类别搜索项目列表,并且在添加项目时,它们被分类在正确的部门和类别下。我正在创建一个连接到 Department、Category 和 Item Details(不包含 DeptID 和 CatID)表的 Junction 表(Department-Category-Item)。

我在正确的轨道上吗??

希望有人可以帮助澄清。

非常感谢。

克里斯

【问题讨论】:

    标签: database database-design junction-table


    【解决方案1】:

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

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

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

    身份证 |姓名 ---|------- 1 |物理 2 |化学

    类别

    身份证 |部门 ID |名称 ---|--------------|----- 1 | 1 |热 2 | 1 |...

    物品

    身份证 |类别 ID |姓名 ---|------------|------ 1 | 2 |火柴棍 2 | 1

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

    P.S.:如果您的关系之一是 n:n(就像一个项目可以属于几个类别),那么您将需要在它们之间建立一个新的实体/表。

    【讨论】:

    • 感谢您的快速回复,假设是正确的!很高兴我在正确的轨道上。对于 Item 表,我可以用 ItemTransaction 替换它,因为它将保存与数量、供应商等有关的信息。是否需要将此 ItemTransaction 表分解为 Item 和 ItemDetails?会有什么好处?
    • 如果您想保存有关供应商的信息,您应该有一个附加表。因为一个供应商可以有多个项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2012-02-22
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    相关资源
    最近更新 更多