我有两个关于项目的问题。如果我得到澄清,我将不胜感激。
我已经将地址分解为单个实体,分解为最小的
单元。 Bur地址在几个表格中重复出现。就像地址字段一样
Client
表以及Employee
表。我们是否应该将地址分成仅包含链接字段的单独表格
例如
使用以下属性创建ADDRESS
表:
从Employee
表和Client
表中删除所有地址字段
我们可以通过获取employee
ID并在ADDRESS
表中提取地址来获取地址
哪种方法更好?在所有表中具有地址字段或如上所示分开。关于哪种设计更好的想法?
答案 0 :(得分:3)
雅绝对分离地址更好因为人们可以有多个地址所以它会增加数据冗余。
根据我的说法,您可以通过两种方式为此问题设计数据库。
一个。使用一个表
表名--- ADDRESS
列名
B中。使用两个表
表名--- CLIENT_ADDRESS
列名
表名--- EMPLOYEE_ADDRESS
列名
当然,您可以使用尽可能多的列而不是地址,就像您提到的单位,建筑,街道e.t.c
根据我的经验,还有一个建议
请在每张表中添加这五列。
从大多数开发人员的角度来看,其原因是,您的客户可以随时要求任何时间段的记录。所以如果你在现实中删除那么对你来说这将是一个严重的情况。因此,每当应用程序用户从gui删除记录时,您必须将标志设置为0而不是实际删除它。默认值为1,表示该行仍处于活动状态。
在检索时,你可以选择像这样的条件
select * from EMPOLOYEE_TABLE where DELETE_FLAG = 1;
注意:这是我的经验建议。我并没有强迫你采纳这个。所以请根据您的要求添加。
没有任何重要目的的ALSO表不需要这样。
答案 1 :(得分:1)
将地址分成单独的表是一个更好的设计决策,因为它意味着任何数据库端验证逻辑等只需要在一个地方维护。