2016-03-18 110 views
-1

我只是好奇,为什么我们需要在数据库中使用一对一,多对多或多对多的方式使用一对一,多对一/多对多,多对多的目的

+0

在MS SQL中,您无法建立1:1关系:http://stackoverflow.com/questions/10292355/how-do-i-create-a-real-one-to-one-relationship-in-sql服务器也不允许建立一个外键约束来执行多对多的关系:http://stackoverflow.com/questions/18435065/foreign-key-to-non-primary-key然而,使用非常简单:它可以帮助我们理解数据库中所有表之间的关系:它们是否连接在一起,如果是这样,怎么办? – Ralph

+1

你的问题不清楚。你的意思是,为什么我们打扰提供基数?或者你的意思是,我们为什么要将这些特殊的基数与其他基因区分开来?或者,为什么数据库中的表格?或者,对于每种基数,我们何时使用它?或者是什么?或者是什么? – philipxy

回答

0

这完全是关于需求,在编程中我们需要维护数据库中的数据。在许多情况下,我们需要创建相关表格,这些表格与关系相关。例如,如果您构建应用程序以维护用户联系人,则需要为用户和联系人设计一张表。在这里你将涉及两个表

0

如果你的意思是,我们为什么要区分关系的基数,那么答案是没有必要。重要的是,我们确定&描述足够的关系来描述每个应用程序的情况。

实体参与关系的基数只是关系的一个属性。例如,如果表EmployeeManager持有“经理M管理员工E”的行,那么填写表格无论每个员工只有一位经理还是每位经理一位员工,你只要看看这个世界,并把那个从这个语句模板生成一个真实语句的行放到表格中。例如,解释一个表的行为也是这样:行都是那些使语句模板成为关于世界的真实声明的行。你不需要知道红衣主教来查询。例如,如果表DepartmentManager保存“管理者M管理部门D”的行,则EmployeeManager NATURAL JOIN DepartmentManager保持“管理者M管理员工E和管理者M管理部门D”的行,而不管每个员工只有一个经理或每个经理的员工,或每个部门的经理或每个经理的部门。

但是好处是,如果我们告诉DBMS,那么它可以排除无效状态,如果我们告诉用户,那么它可以帮助他们理解关系语句模板的含义或DBMS为什么拒绝假定的错误更新。