我画了这个布局方案,但现在我需要转换为"mysql布局“。所以generalization必须使用两个junction tables,对吗?(一个给学生,另一个给工人)
关于multiplicity,用户可以是工人,也可以是学生,但是一个用户只能是一个工人,一个工人只能是一个用户?这没有多大意义...?
基本上,就是如何将这个generalization转换为对mysql代码可执行的东西。
谢谢

发布于 2011-04-28 23:16:23
处理这种情况的一种方法是定义三个表: users、workers和students。workers和students表都有一个user_id字段,该字段是绑定到users表中相同字段的外键。
发布于 2011-04-28 23:20:48
ORM有3种方法可以做到这点
第一种方法是给他们每个人一个单独的表,并连接这些表。(3表)
第二种方法只有当你的users类是抽象的时才有效,然后你需要为你的子类获取2个表。
最后也是我最喜欢的方式。您将所有内容都放在一个表中,并引入一个鉴别器列。基本上,创建一个包含用户、学生和工人所有字段的表。为该类型添加一个额外的列,并相应地填充它们。你可以使用鉴别器列轻松地选择所有的学生/工人,而且你不需要垃圾邮件连接。缺点是它占用了额外的空间。
https://stackoverflow.com/questions/5820834
复制相似问题