首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确地构造多个用户类型?

如何正确地构造多个用户类型?
EN

Database Administration用户
提问于 2020-06-17 08:36:44
回答 1查看 200关注 0票数 0

所以我正在为一个应用程序/网站建立一个数据库。它本质上是一个电子商务市场/平台,一个品牌可以注册上传他们的产品,然后客户也可以注册从任何不同的品牌购买任何产品。

品牌和员工不能成为顾客。

顾客不可能是品牌

这是我到目前为止的结构,但在我看来,从这个图表中可以看出,用户可以同时成为客户、品牌和品牌员工。

是否有更好的最优结构?

EN

回答 1

Database Administration用户

发布于 2020-06-17 12:08:56

您可以改变外键关系,并将三个外键添加到user中,分别用于customerbrandbrand_employee。然后添加一个CHECK约束,以确保确切的外键之一是NOT NULL

代码语言:javascript
复制
CREATE TABLE users (
   id                uuid PRIMARY KEY,
   ...
   customer_id       uuid REFERENCES customer(id),
   brand_id          uuid REFERENCES brand(id),
   brand_employee_id uuid REFERENCES brand_employee(id),
   CHECK (customer_id IS NOT NULL AND brand_id IS     NULL AND brand_employee_id IS     NULL OR
          customer_id IS     NULL AND brand_id IS NOT NULL AND brand_employee_id IS     NULL OR
          customer_id IS     NULL AND brand_id IS     NULL AND brand_employee_id IS NOT NULL)
);
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/269315

复制
相关文章

相似问题

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