0

我正在创建一个包含很多表的 C# 应用程序。我已经创建了一个实体关系图/模型,但不知道如何将它实现到一个工作 SQL 数据库中。我需要以下帮助:

  • 我是否需要在我的数据库中为多对多关系之间的关系创建单独的表?

  • 如何处理一对多和一对一的关系。

  • 何时做外键和复合键(以及如何做复合键)。

如果有人可以帮助我解决这些问题或您认为对我有帮助的任何其他问题,我将不胜感激。

(我会展示我的实体关系,但你必须有一定的声誉才能链接它们,而我没有)

4

1 回答 1

0

您是否需要在数据库中为我的多对多关系之间的关系创建单独的表?

是的,它是我们所谓的面向对象设计的一部分,它在行业中很常用,通过您的表进行操作会更容易,并且在检索数据时用于连接表的更短查询将更短、更快/更高效。

如何处理一对多和一对一的关系。

例如,有一家公司有很多地址,那么您必须有一个地址表(例如 t_Address),它将用作您公司表中的外键(例如 t_Company)。这是一个(公司)对多(地址)的关系。
因此,一对一的关系是您必须在表之间有一个链接。例如,学生的地址表(例如 t_Address)有一个外键 Student_ID,学生表(例如 t_Student)也有一个外键 Address_ID。这是一对一的关系,您可以仅使用地址搜索学生,或反之亦然。

什么时候做外键?如果仅当您需要在这些表之间建立关系时。

何时使用复合键?
好吧,现在使用复合键对您来说不再有效,它主要用于过去,有些人认为拥有多个主键(或您所谓的复合键)比只有一个主键更好,但实际上它会只会给您带来问题,因为您有 2 个唯一键将在其他表上引用,这将导致您在编码阶段花费大量时间和可能出现错误,因为当您使用引用复合键的其他表时,您将总共有三个唯一的列来标识一条记录,这使得它非常低效。

如何做复合键?(这可能效率不高,但如果它是您项目中的需求方或其他任何方面,您可以参考它)
如何使用 SQL Server Management Studio 制作复合键?
http://www.1keydata.com/blog/2013/02/composite-key-in-sql.html

于 2015-04-14T21:43:32.560 回答