【问题标题】:Basic Database Design基本数据库设计
【发布时间】:2010-05-16 17:24:58
【问题描述】:

这个问题有点幼稚,我有三个表,用户、用户组和联系人。在我的系统中,最终用户可以创建联系人,然后他\她可以通过仅为该用户或一组用户或一组用户组设置来定义联系人的可见性。所以我想知道,我的数据库设计将如何,用户和联系人之间应该是多对多的,或者用户组和联系人之间应该是多对多的。用户和用户组之间肯定是一对多的关系。

谢谢 图林

【问题讨论】:

    标签: database-design


    【解决方案1】:

    如果您有可能为一组用户或一组用户组设置可见性,那么您需要您提到的两个 m2m 表。一个contacts_users 和一个contacts_usergroups。

    如果“用户集”不同于单个“用户组”,我所说的是正确的。

    【讨论】:

    • 是的,这样怎么样,用户和用户组之间是一对多的关系,而且,我只需要设置一组用户组的可见性。
    • 那么您可以使用单个 m2m 表。仅当您想将可见性设置为单个用户时才需要另一个。
    • 等一下:one2many users-usergroups?你确定吗?不应该是m2m吗?用户有很多用户组,用户组有很多用户?
    • 是的,正确,用户-用户组之间的 m2m。所以,你也认为,如果我只处理用户组的可见性,那么在用户组和联系人之间建立 m2m 关系是正确的吗?那么,设计将是联系人和用户组之间的 m2m,以及用户和用户组之间的另一个 m2m,对吗? :)
    • 是的,如果我正确理解您的问题,我想是的。我的意思是理解一段关系很简单。用户是否从许多用户组中隐藏了联系人并且用户组不能看到许多联系人?如果是,那么它是一个 m2m。是的,我很确定你可以接受我的回答:)
    猜你喜欢
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多