Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 数据库一对一关系的实现_Database - Fatal编程技术网

Database 数据库一对一关系的实现

Database 数据库一对一关系的实现,database,Database,目前我还没有建立任何数据库,我仍处于学习使用ER图和表列表规划数据库的阶段 我了解什么是一对一关系,何时使用它们,何时避免它们,等等。我不了解的是它们是如何实现的?它们都有相同的主键吗?还是像多对多关系一样简单地放入一个外键?通常会在指向另一个表的主键的其中一个表上实现非空外键,并在此外键上添加唯一约束 您还可以添加检查约束,以确保表中的所有外键在另一个表中显示为主键,反之亦然,但这样做会使在两个表中添加和删除项变得相当困难 其他两个选项是: 创建一个组合两个实体的表。但这违背了实体和数据分离

目前我还没有建立任何数据库,我仍处于学习使用ER图和表列表规划数据库的阶段


我了解什么是一对一关系,何时使用它们,何时避免它们,等等。我不了解的是它们是如何实现的?它们都有相同的主键吗?还是像多对多关系一样简单地放入一个外键?

通常会在指向另一个表的主键的其中一个表上实现非空外键,并在此外键上添加唯一约束

您还可以添加检查约束,以确保表中的所有外键在另一个表中显示为主键,反之亦然,但这样做会使在两个表中添加和删除项变得相当困难

其他两个选项是:

  • 创建一个组合两个实体的表。但这违背了实体和数据分离的概念
  • 具有正常的多对多实现,并通过上述约束实施一对一