Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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
将泛化转换为mysql方案_Mysql_Database_Database Design_Uml - Fatal编程技术网

将泛化转换为mysql方案

将泛化转换为mysql方案,mysql,database,database-design,uml,Mysql,Database,Database Design,Uml,我画了这个布局方案,但现在我需要转换为“mysqllayout”。因此,泛化必须使用两个连接表,对吗?(一名学生,另一名工人) 关于多重性,用户可以是工作者或学生,但一个用户只能是一个工作者,一个工作者只能是用户?这没有多大意义 基本上,我如何将这个泛化转换为可用于mysql代码的可执行文件 谢谢 处理这个问题的一种方法是定义三个表:用户、工作者和学生。workers和students表都有一个用户id字段,该字段是绑定到users表中相同字段的外键。处理此问题的一种方法是定义三个表:users

我画了这个布局方案,但现在我需要转换为“
mysql
layout”。因此,
泛化
必须使用两个
连接表
,对吗?(一名学生,另一名工人)

关于多重性,用户可以是工作者或学生,但一个用户只能是一个工作者,一个工作者只能是用户?这没有多大意义

基本上,我如何将这个
泛化
转换为可用于
mysql
代码的可执行文件

谢谢


处理这个问题的一种方法是定义三个表:用户、工作者和学生。workers和students表都有一个用户id字段,该字段是绑定到users表中相同字段的外键。

处理此问题的一种方法是定义三个表:users、workers和students。workers和students表都有一个用户id字段,该字段是一个外键,与users表中的同一字段相关联。

ORM有3种方法

第一种方法是给他们每个人一个单独的表并连接这些表。(3表)

第二种方法仅适用于用户类是抽象类的情况,然后为子类获取两个表

最后也是我最喜欢的方式。 您将所有内容填充到一个表中,并引入一个鉴别器列。 基本上,创建一个包含用户、学生和工作者的所有字段的表。 为类型添加一个额外的列,并相应地填充它们。
您可以使用discriminator列轻松选择所有学生/工作者,而不必发送垃圾邮件。缺点是它会占用额外的空间。

ORM有三种方法

第一种方法是给他们每个人一个单独的表并连接这些表。(3表)

第二种方法仅适用于用户类是抽象类的情况,然后为子类获取两个表

最后也是我最喜欢的方式。 您将所有内容填充到一个表中,并引入一个鉴别器列。 基本上,创建一个包含用户、学生和工作者的所有字段的表。 为类型添加一个额外的列,并相应地填充它们。
您可以使用discriminator列轻松选择所有学生/工作者,而不必发送垃圾邮件。缺点是它会占用额外的空间。

@最后一个建议-但是表用户中的内容是针对每个用户的,特定的内容,工作表中的数据可以为不同的用户共享-两个设计师bob和john可以获得相同的薪水。这就是为什么我在模式中创建了三个表。如果bob得到加薪而john没有呢?在这种情况下,问题不应该用泛化来解决,而应该用像Ted Hopp这样的关系来解决suggested@last建议-但是表users中的内容是针对每个用户的,具体的内容,worker表中的数据可以为不同的用户共享-两个设计师bob和john可以获得相同的薪水。这就是为什么我在模式中创建了三个表。如果bob得到加薪而john没有呢?在这种情况下,问题不应该用一般化的方法来解决,而应该用Ted Hopp建议的关系来解决