对于学校项目,我们必须创建自己的数据库。我决定创建一个数据库来管理我的电子元件库存。作为要求,我们需要创建一个ER图,然后从该图派生数据库模式。对我来说不幸的是,教授认为我创建的图可以被简化,并且“部分”实体是不必要的。简化数据库ER图/模式
如果我删除了零件实体,那么为了使电路实体“使用”任意数量的任何零件,并使每个零件与可能的任何电路相关联,我必须有一个单独的M对N从每种组件类型到电路的关系。每个关系都会生成一个新表。这肯定会超过我们为该项目所允许的最大数量的表格。
如果教授特别提到Part是不必要的,那么必须有某种方法将其删除,从而导致更简单的ER图和模式 - 但我看不到它是什么。
也许你们可以看到它是什么,并给我一个提示?编辑: 丹W有一个很好的建议。我可以通过给每个部件类型(电容器,电阻器等)自己的键来消除该部分。然后在内部使用部分,包含这些组件的外键。我将不得不假设表中的每个条目只与一个部分相关,其余部分为空。 Here's生成的模式。这个模式应该很好。但是现在我必须弄清楚ER图的哪些修改将与该模式相对应。
编辑2: 我得出结论,我正在寻找的关系是n元。根据几个来源,要从n元转换为模式,可以将每个参与实体类型的关系的主键包含为外键。然后添加简单的属性。我想出了This。
难道你不能将PartID更改为ResistorID,CapicatorID等,然后将这些列添加到Uses_Part表中? – 2012-02-14 21:58:00
好的建议。我以前想过这个,但我不完全确定如何在ER图中表示这一点。这可能是一种非正式的关系,但我必须看到。 – Schmidget 2012-02-14 22:54:16
我真的很喜欢你的设计。我什么都不会改变。有不同种类的零件,具有不同的属性,每个零件(电阻器,电容器等)都有独立的实体。 Part部件实体需要作为这些的超类型实体。正如你所说(正确)用于M:N关系。 – 2012-02-14 23:20:55