繁体   English   中英

数据库设计模型是客户,厨师,用户关系

[英]Database Design model a Customer, Cook, User relationship

我很困惑,我在互联网上阅读了很多内容,但我无法弄明白。 在这种设计中,可扩展性对我来说是一项重要任务。

我正在建立一个人们可以出售他们的食物的门户网站,或者可以去这个门户网站购买食物。

我正在考虑以下3个选项:

  1. 制作3张桌子。 用户,客户,厨师。
  2. 制作2张桌子。 用户,客户。
  3. 制作2张桌子。 顾客。 厨师

我创建了一个主要用于安全性的User表,因为我不希望秘密数据驻留在Customer或Cook表中。

问题是库克也可以成为顾客。

我正在考虑方法1.我如何建模。 我是否使用递归方法。 递归方法适用于Employee和Manager的想法(标准教科书示例),但这里看起来很奇怪。

在方法2中,我使用1个表,我不区分厨师和客户。 没有做到这一点,似乎是一个坏主意。

方法3是可能的,但我无法在脑海中思考它是如何工作的

用户表是这样的:

在此输入图像描述

客户表是这样的:

在此输入图像描述

我建议使用三表方法来分隔特定于每个角色的数据。

  • User表包含两个角色共有的数据,例如用户的名称。
  • 其他两个表仅包含特定于角色的数据。

用户和客户(或用户和厨师)之间的关系是一对一或零。 因此,对于每个用户,如果用户同时履行这两个角色,则可能有客户或库克记录,或两者都有。

在此输入图像描述

这里的图表: https ://app.quickdatabasediagrams.com/#/schema/t_JngpUcm0-w_dbnW3FzsA [免责声明:我为QuickDatabaseDiagrams工作]

您可以在用户表“userType”[买家/卖家/两者]中再创建一列。这将有助于了解当前用户是买家,卖家还是两者。 这也有助于建模系统流程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM