我画了这个布局方案,但现在我需要转换为“mysql
布局”。所以 generalization
必须使用两个 junction table
,对吗? (一个给学生,一个给 worker )
关于多重性
,用户可以是 worker 或学生,但一个用户只能是一个 worker ,一个 worker 只能是一个用户?这没有多大意义......?
基本上,我如何将此泛化
转换为可以为mysql
代码执行的内容。
谢谢
最佳答案
ORM 有 3 种方法
第一种方法是给他们每个人一个单独的表并连接这些表。 (3 表)
第二种方法只有在你的用户类是抽象类时才有效,然后你为你的子类取 2 个表。
最后也是我最喜欢的方式。 你把所有东西都塞进一张表,然后引入一个鉴别器列。 基本上制作一个包含用户、学生和 worker 所有字段的表。 为类型添加一个额外的列并相应地填充它们。 您可以使用鉴别器列轻松选择所有学生/ worker ,而不必垃圾邮件加入。缺点是它会占用额外的空间。
关于mysql - 将泛化转换为 mysql 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820834/