【问题标题】:Modeling database with 2 type of users (web and twitter)具有 2 类用户(网络和推特)的建模数据库
【发布时间】:2012-03-26 00:12:26
【问题描述】:

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

我必须存储两者的数据: - 网络注册用户:id、昵称、邮件、已验证、密码 - Twitter 用户:id、nick

目前我只有 2 张桌子: - 网络用户:id、昵称、邮件、已验证、密码 - twitter 用户:id、nick

但它带有一些问题,例如 cmets 表。两个用户都可以制作 cmets,所以我需要两个外键,这是不可能的。

我也想过这种可能性: - 用户:id、nick - users_twitter:id, - users_web:id、昵称、邮件、已验证、密码。

它将代表主表 users 和两个子表:users_twitterusers_web。 但是... users_twitter 表只有一个字段:id 是不是很奇怪?

你会推荐我什么? 哦,顺便说一句。 Twitter 用户 ID 是我从 twitter API 获得的,因此该 ID 可能与我的网络用户 ID 相同。

谢谢。

【问题讨论】:

  • 你在运行时关心它是哪种类型的用户吗?

标签: mysql database types entity-relationship


【解决方案1】:

所以,你有一个层次结构。您有一些公共字段可能是 Users 表的一部分,而其他一些字段应该是每个子表的一部分:UsersTwitterUsersWeb。您可以查看此post 以了解如何处理层次结构。

【讨论】:

  • 我只是想知道是否为重复字段“id”创建整个表是否正确。但是想想。为 twitter 用户创建 2 个 id 可能是一个更好的主意。我在用户表上的自动增量 ID,然后是推特 ID。所以现在我的 twitter_users 表将有: id, twitterId 是否正确?谢谢!!
  • 这不是“层次结构”。这是超类型/子类型模式。层次结构有所不同。
猜你喜欢
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 2016-09-28
相关资源
最近更新 更多