0

您能建议数据库优化的最佳实践吗?这是我的数据库架构,

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

users(id, group_id, parent_id, company_id, agent_id, username, password)

B.公司和代理表中的外键为user_id

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

我使用 mysql 作为数据库并使用级联引用。当我删除公司/代理时,关联用户会根据选项 A 自动删除。但如果使用选项 BI,则必须运行第二个查询以删除公司/代理的关联用户。所以你有什么建议???

更新:忘了提到儿童用户。公司/代理的用户可以有子用户,由 users 表中的 parent_id 引用。

4

1 回答 1

1

选项A听起来不错。

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

于 2013-10-25T08:16:19.040 回答