mysql - 这种关系的最佳数据结构

标签 mysql database database-design

我有一个关于数据库“样式”的问题。

我需要一种存储用户帐户的方法。一些用户“拥有”其他用户帐户(子帐户)。然而,并非所有用户帐户都拥有,只有一些。

是否最好使用像这样的表结构来表示它...

TABLE accounts (
 ID 
 ownerID -> ID
 name
)

...即使在没有所有者的帐户的 ownerID 列中会有一些 NULL 值。

或者像这样有两个表在风格上更可取。

TABLE accounts (
 ID 
 name
)

TABLE ownedAccounts (
 accountID -> accounts(ID)
 ownerID -> accounts(ID)
)

感谢您的建议。

最佳答案

我会将表格分开。

自引用外键会给更新/删除带来很多痛苦。

对于组合表,对所有者的级联删除将删除所有拥有的帐户。 (这可能是可取的,也可能不是可取的。)对于单独的表,级联删除将只删除账户拥有的关系,而不是账户本身。

关于mysql - 这种关系的最佳数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3023594/

相关文章:

mysql - 修改MySQL索引计数

sql - 我可以在同一个查询结果(oracle)中返回多个计数器吗?

mysql - 如何组织数据库来存储父/子关系

database - 在数据库中存储 bool 值的最佳数据类型是什么

php - 从我的 sql 表行中搜索至少一个逗号分隔值

Mysql嵌套子查询未知列错误

php - Mac 本地主机站点文件夹权限问题

MySQL插入查询错误

Mysql添加约束: force a field to get specific values

mysql - 在具有相同值的多个实例的 SQL 中选择随机