我对处理此类数据的最佳方法有疑问。
在我的系统中,我将拥有许多用户和许多帐户...用户可以属于多个帐户,帐户将拥有许多用户。我猜测实现这一目标的最佳方法是使用三个表
用户
账户
&安培; users_accounts
我的问题是,当有人注册付费帐户时...我应该在哪里存储区分常规用户和帐户持有人的标志? user_accounts表中是否应该有所有者标志?
答案 0 :(得分:1)
我可以假设一个帐户不能拥有多个用户(1对多关系)吗?在这种情况下,两个表就足够了:
users
accounts
accounts
包含对用户ID的引用。当没有多对多关系时,单独的关系表将是多余的。
然后问题出现了:用户可以同时拥有付费和非付费帐户吗?如果是,则该标志属于accounts
。否则,它属于users
。
考虑到您的澄清,您的三张桌子设计是合适的。您的问题的答案完全取决于您希望付费帐户的工作方式。
users
。accounts
。users_accounts
。如果每个帐户只有一个所有者,那么您应该将代表所有者的用户ID放在accounts
表中。
答案 1 :(得分:0)
Users
表将只包含用户相关数据...姓名,姓氏等...
accounts
将拥有帐户信息...类型和任何其他数据......
关键是users_accounts
是Users
和accounts
之间的关系表,因此它会包含Users
到accounts
的所有关联数据,在那里你应该放置标志,因为在你设置关系时就存在了。
答案 2 :(得分:0)
向paid
添加user_account
标记。
示例属性:
user (id, name, street ...)
account (id, name ...)
user_account (user_id, account_id, paid)
如果用户是高级帐户成员,您可以通过paid
列告诉。