好:
最近看过老外的一个数据库,发现这个数据库表之间都没有直接用外键,而是用了单独的关系表来维持这种外键关系,请问这样做有什么好处?
例如: 有一种关系 学生 -- 属于 -> 班级
(是一对一的关系) 在我们的数据库设计中都是这样的:
学生表、班级表 学生表中有一个外键字段叫做所属班级,来实现这种关系 但是在他们的数据库中是这样设计的:
学生表、班级表、学生vs班级表
其中学生表与班级表没有直接的外键关系,他们的关系通过“学生vs班级表”来实现的
就是在“学生vs班级”表中有三个字段,一个是ID,一个是学生ID,一个是班级ID,用这个表的数据来实现学生属于班级这个关系 请问这种设计是基于什么考虑的呢? 不知道问题描述清楚了没有,大家一起探讨一下,希望得到比较专业的回答,呵呵。
最近看过老外的一个数据库,发现这个数据库表之间都没有直接用外键,而是用了单独的关系表来维持这种外键关系,请问这样做有什么好处?
例如: 有一种关系 学生 -- 属于 -> 班级
(是一对一的关系) 在我们的数据库设计中都是这样的:
学生表、班级表 学生表中有一个外键字段叫做所属班级,来实现这种关系 但是在他们的数据库中是这样设计的:
学生表、班级表、学生vs班级表
其中学生表与班级表没有直接的外键关系,他们的关系通过“学生vs班级表”来实现的
就是在“学生vs班级”表中有三个字段,一个是ID,一个是学生ID,一个是班级ID,用这个表的数据来实现学生属于班级这个关系 请问这种设计是基于什么考虑的呢? 不知道问题描述清楚了没有,大家一起探讨一下,希望得到比较专业的回答,呵呵。
学生表、班级表、 学生vs班级表
其中学生表与班级表没有直接的外键关系,他们的关系通过“学生vs班级表”来实现的
就是在“学生vs班级”表中有三个字段,一个是ID,一个是学生ID,一个是班级ID,用这个表的数据来实现学生属于班级这个关系 -------------------------------
学生vs班级表比较冗余,不建立外键可以用程序控制
我猜的啊,呵呵