【问题标题】:Database 1...n relation with several owner tables数据库 1...n 与多个所有者表的关系
【发布时间】:2016-04-29 09:55:28
【问题描述】:

我想创建一个数据库方案,但不知道以下场景的解决方案: 我有用户、团队和项目。我希望能够以用户的身份创建项目,也可以以团队的身份创建项目。我想到的是在项目表中包含两个外键。一个用于“userId”,一个用于“teamId”。但在这种情况下,对于每个实体,userId 或 teamId 都将为空。 这是一个好的解决方案还是有更好的解决方案?

【问题讨论】:

标签: mysql database database-design database-schema


【解决方案1】:

您可以创建一个强制userId != null OR teamId != null 的约束。

或者,您可以要求每个项目有一个非空外键userId(团队中的某些用户必须主动创建项目,对吗?),然后创建一个associatedTeam外键(可以是可选)。

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 2011-08-23
    • 2020-09-16
    • 2011-01-22
    • 2010-09-16
    • 2021-04-16
    相关资源
    最近更新 更多