[请问] 数据库应用 ER model问题

楼主: ko74652 (Reese lin)   2014-08-01 21:42:09
我想问一下 数据库应用 里面 ER Model 弱个体与个题的差别
--
假使 有一个体 如 学生 学生之间的差别会用键值属性来区别 (例如学号
然后 弱个体看定义是 : 弱个体就是本身没有任何键值属性的个体
如果今天有个学生(个体) 有(属性) N个 亲属(弱个体)
那亲属之间的区别 又以 姓名来区分 看定义这个叫部分键
那我想问的是 上面定义的部分 不是就说弱个体不会有任何键值属性吗
那部分键的功用不是就跟键值属性一样是用来区分单位个体里面的区别吗
那这样为什么又要有弱个体的存在??
我这样想法是错的吗 谢谢
作者: Schottky (顺风相送)   2014-08-01 21:44:00
会有同名同姓的啊
楼主: ko74652 (Reese lin)   2014-08-01 21:46:00
那这样为什么要有弱个体的存在 就都用个体就好了啊@@?
作者: Schottky (顺风相送)   2014-08-01 21:47:00
不过 weak entity 的定义是依附在另一个 entity 之下以你的例子,就是使用学生的 primary key 加亲属名字区别学生的 primary key 是亲属的 foreign key 这样你只要赋与每个亲属一个自己的 primary key亲属就从弱个体变成个体了没错不过有时候这是没必要的... 亲属至少还是个独一无二的人如果有个 table 是纪录哪两个学生在恋爱,这不用 key 吧!
楼主: ko74652 (Reese lin)   2014-08-01 22:15:00
我大概了解了 通常亲属只会隶属于一位学生而不会隶属于其他学生 如果都用个体 那亲属就会重复隶属这样就表格就会失去这个体拥有的唯一性质 是这样吗谢谢你回复哦
作者: Schottky (顺风相送)   2014-08-01 22:18:00
其实我觉得亲属的例子不好,weak entity 最常用的还是我举的 associative entity, 也就是拿来表示多对多的对应等等,恋爱关系多对多好像哪边怪怪的...
楼主: ko74652 (Reese lin)   2014-08-01 22:30:00
这样意思是 如果我有一个女朋友叫A 小明也有个女朋友叫A如果使用weak entity就没问题 用个体就变成多对多是吗XD
作者: Schottky (顺风相送)   2014-08-01 22:32:00
不是,是学生 A 和学生 B 恋爱,那有一个 table 的内容是两个 foreign key 字段分别记 A 和 B 的 key这个 table 的内容并不是人,而是一段关系,而 A-B 的联合 key 可以定义为这段关系的 primary key所以 table 中也会有 A-C A-D B-D B-E 等等多对多关系Wikipedia 的举例是学生-课程的修课关系,好像正常多了除了学生和课程两个表外还有个表记录哪个兔崽子修哪门课
楼主: ko74652 (Reese lin)   2014-08-01 22:48:00
所以你举的例子来说 就是人与人之间的关系 用弱个体才会表示正确的对应关系 像是A-C B-C的关系 如果只用个体那就无法了解到这多对多的关系 对吧!?
作者: Schottky (顺风相送)   2014-08-01 23:19:00
没错所以一般来说,弱个体是应用在根本就不是个体的东西上
楼主: ko74652 (Reese lin)   2014-08-01 23:29:00
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com