地址映射到客户,员工和餐厅

时间:2019-04-01 11:33:51

标签: database-design

我需要一些有关如何设计数据库架构的建议,以在客户地址,员工地址餐厅和餐厅本身地址之间共享地址表。客户可以有多个地址,我们如何以规范化形式处理这种情况。

1 个答案:

答案 0 :(得分:0)

为了解决此问题,您需要将所有实体归为一个共同的组,例如“用户”,并通过单独的“ user_types”表对其进行区分。

在您的情况下,有三种“用户类型”-客户,员工,餐厅

id | user_type
--------------
 1 | customer
 2 | employee
 3 | restaurant

在用户表中,您可以通过user_type_id列

获得外键引用

使用所需的地址字段创建一个单独的地址表 然后,您可以通过对用户的外键引用在客户地址,员工地址或餐厅地址之间建立一对多关系。例如,

id|door_no|address_line_1|address_line_2|user_id
----------------------------------------
1 | 21/B  | Baker street |8th avenue    |1

此答案可能会进一步帮助您:One Address Table for Many entities?