嘿我必须创建数据库,它应该像下面的方案: http://imgur.com/a/UdFKr
但没有“联系”表。这甚至可能吗?
另一个问题: 如何将少量值放入单个字段?是否可能,或者我需要创建额外的表?
答案 0 :(得分:0)
可以在没有Contact表的情况下对此进行建模。 解决方案可以是将Employee表放在de model的中心。然后,您可以将Phone_number和Email_address表链接到具有一对多关系的Employee表,就像它们当前建模到Contact一样。由于员工可以拥有多个电子邮件地址和多个电话号码,因此这些表应具有Employee的外键。
您唯一需要记住的是Employee表与Company表关系的基数。为了消除数据冗余,您可能希望在那里建立多对多关系,因为Employee可能有多个雇主,而公司可能属于多个Employe。这意味着您将最终拥有一个联结表。
希望这能回答你的问题。
答案 1 :(得分:0)
根据对外键的通常解释来阅读您的设计图,每个公司,员工,电子邮件地址和电话号码只有一个联系人,每个联系人至少有一个。因此,Contact中的ID集合始终是其他四个表中的联系人ID集合。所以你不需要联系。 (但如果相反,联系人可以存在而不与其他四个实体相关联,那么单独的四个表将无法记录这些业务情况。)
我猜不清楚“如何将少量数值投入单场?”你的意思是如何将多个值放入一个字段中。选择一个函数,以您可以撤消/反转的方式将多个值映射到单个值。但是,如果您对使用单个值进行查询感兴趣,那么您不应该这样做,这是一个糟糕的设计。研究它。 (这通常被认为违反了1NF,但这取决于1NF的含义,这个词用来表示很多不同的东西。最终在可以说违反它的情况下,1NF本身取决于价值的哪一部分你希望能够查询。)