mysql - 您会在父表中添加一个owner_id,还是在子表中添加一个is_owner?

标签 mysql database database-design

假设您有一张 table

collection
    id
    name

和一张 table

collection_collaborator
    id
    user_id

您会在父表中添加一个owner_id吗?

collection
    id
    name
    owner_id

您会在子表上添加 is_owner 吗?

collection_collaborator
    id
    name
    is_owner

最佳答案

这个问题没有非黑即白的答案 - 实际上取决于您的业务需求和您自己的偏好。

这两种方法之间有一个明显的区别:owner_id 字段指示集合只能有一个所有者,而 is_owner 标志允许一个集合有多个所有者单个集合。

另一个决定因素可能是数据报告。如果您有 owner_id 字段,那么您可以显示集合的所有者信息,而无需加入协作者表。如果您有大量报告需要所有者信息,但不需要协作者的任何其他信息,则 owner_id 字段可以提高查询性能。

关于mysql - 您会在父表中添加一个owner_id,还是在子表中添加一个is_owner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50493744/

相关文章:

database-design - dynamoDB 中可查询的表

mysql - COUNT 与 IF FROM DISTINCT 值 MySQL

mysql - 连接表并按 2 个不同的列排序

php - Laravel 5.2 中未定义路由

database - 树系统中基于角色的访问控制

MySQL - 数据库结构,不知道该怎么做

mysql - 如何创建使用另一个查询结果的单个 MySQL 查询

database - 以编程方式将文档添加到 Hummingbird/OpenText eDocs 数据库

database - 为什么 Oracle Database XE 18c 未安装在 Windows 10 中?

database - Postgres : Reference Cell of the other table