首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数据库中引用外键的更好方法

在数据库中引用外键的更好方法
EN

Stack Overflow用户
提问于 2013-10-25 16:04:45
回答 1查看 84关注 0票数 0

你能推荐数据库优化的最佳实践吗?下面是我数据库模式,

代码语言:javascript
复制
group(id, name, status)
users(id, group_id, parent_id, username, password)

company(id, name, address, phone)
agent(id, agent_code, name, address, phone)

在这个模式中,我有四种用户组,即超级管理员、公司用户、代理用户和最终用户。

推荐每个实体(公司、代理商)的用户的最佳方式是什么?

我有两个选择

A. users表中的外键为company_id和agent_id

代码语言:javascript
复制
users(id, group_id, parent_id, company_id, agent_id, username, password)

B.外键作为company和agent表中的user_id

代码语言:javascript
复制
company(id, user_id, name, address, phone)
agent(id, user_id, agent_code, name, address, phone)

我使用mysql作为数据库,并使用层叠引用。当我删除公司/代理时,根据选项A,关联的用户被自动删除。但是在选项B的情况下,我必须运行第二次查询来删除公司/代理的关联用户。那么你有什么建议呢?

更新:忘记提及儿童用户。公司/代理的用户可以具有子用户,这些子用户由users表中的parent_id引用。

EN

回答 1

Stack Overflow用户

发布于 2013-10-25 16:16:19

选项A听起来不错。

示例:-他们可以假设100个用户只与5个公司关联,因此可以在一个查询中删除单个用户...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19584376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档