Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 关于2表的列关系_Mysql_Database_Relationship - Fatal编程技术网

Mysql 关于2表的列关系

Mysql 关于2表的列关系,mysql,database,relationship,Mysql,Database,Relationship,我有3张表用户,管理员,票证 票证可以由用户或管理员发送,因此我需要在票证和管理员之间添加关系,票证和用户 我认为解决方案是像这样创建ticket表 ticket(id,content,usertype,userid)和usertype是ENUM('admin','user') 因此,如果usertype=admin,userid请参考admin表格,如果usertype=user,userid请参考user表格 现在我有两个问题 1.我创建表的方法正确吗 2.如果正确,如何添加外键 我使用的是

我有3张表
用户
管理员
票证

票证可以由
用户
管理员
发送,因此我需要在
票证
管理员
之间添加关系,
票证
用户

我认为解决方案是像这样创建
ticket

ticket(id,content,usertype,userid)
usertype
ENUM('admin','user')

因此,如果
usertype=admin
userid
请参考
admin
表格,如果
usertype=user
userid
请参考
user
表格

现在我有两个问题

1.我创建表的方法正确吗

2.如果正确,如何添加
外键

我使用的是MySQL,你几乎把它做对了。 您需要创建一个不相交的(如OOP中的继承)

票证
应单独用3个表格表示:

1-
ticket(id,content)
其中
id
是主键

2-
ticket\u user(id,userid)
,这里两个属性都是主键,
userid
user
表的外键,
id
是指向
ticket
表的外键

3-
ticket\u admin(id,adminid)
,与上面相同,
adminid
指向
admin

我的回答是基于我在大学上的数据库设计课程,我们没有使用MySQL,所以我不能确切地告诉你如何实现它