Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 使用两种类型的用户(web和twitter)对数据库进行建模_Mysql_Database_Types_Entity Relationship - Fatal编程技术网

Mysql 使用两种类型的用户(web和twitter)对数据库进行建模

Mysql 使用两种类型的用户(web和twitter)对数据库进行建模,mysql,database,types,entity-relationship,Mysql,Database,Types,Entity Relationship,我在数据库中有两种类型的用户: -网络注册用户 -推特用户 我必须存储以下两方面的数据: -网络注册用户:id、nick、mail、verified、密码 -Twitter用户:id,nick 目前我只有两个表: -网络用户:id,尼克,邮件,已验证,密码 -推特用户:id,尼克 但它也带来了一些问题,例如注释表。两个用户都可以发表评论,所以我需要两个foreign密钥,这是不可能的 我也考虑过这种可能性: -用户:id,尼克 -用户\u推特:id, -用户网络:id,尼克,邮件,验证,密码 它

我在数据库中有两种类型的用户: -网络注册用户 -推特用户

我必须存储以下两方面的数据: -网络注册用户:id、nick、mail、verified、密码 -Twitter用户:id,nick

目前我只有两个表: -网络用户:id,尼克,邮件,已验证,密码 -推特用户:id,尼克

但它也带来了一些问题,例如注释表。两个用户都可以发表评论,所以我需要两个foreign密钥,这是不可能的

我也考虑过这种可能性: -用户:id,尼克 -用户\u推特:id, -用户网络:id,尼克,邮件,验证,密码

它将代表主表用户,包含两个孩子:用户(u twitter用户(u web)。 但是twitter上的用户列表只有一个字段:id,这不是很奇怪吗

你给我推荐什么? 哦,对了。Twitter用户id是我从twitterapi获得的,所以可能id与我的web用户id相同


谢谢。

所以,你有一个层次结构。您有一些公共字段可以是
Users
表的一部分,还有一些公共字段应该是每个孩子的一部分:
UsersTwitter
UsersWeb
。您可以看看这个,看看如何处理层次结构。

在运行时您关心它是哪种类型的用户吗?我只是想知道为重复字段“id”创建一个完整的表是否正确。但是想想看。也许为twitter用户创建2个id会更好。我在users表上的自动增量ID,然后是twitter ID。那么现在我的twitter\u users表将有:ID,twitterId是否正确?谢谢这不是“层次结构”。这是超类型/子类型模式。层次结构是不同的。