我为我的项目设计了一个小型数据库(约30个表)。我现在想知道我应该采取哪种方法。
Say(为了论证),我们有一个具有以下结构的域模型片段。
有两种类型的员工:
- 永久员工(每月支付相同金额+奖金)
- 每小时工资员工(PPH)
域模型中的关系如下:
Abstract Employee
Permanent Employee : Employee
PPH_Employee : Employee
让我们假设employee表看起来像这样:
Employee (employee_id (PK), last_name, first_name, salary)
我们可以在这里应用3种不同的数据映射:
直接:
Employee (employee_id (PK), last_name, first_name, salary)
Permanent_Employee (employee_id (FK), bonus)
PPH_Employee (employee_id (FK), no_of_hours, hourly_wage)
下拉:
Permanent_Employee (employee_id (PK), last_name, first_name, salary, bonus)
PPH_Employee (employee_id (PK), last_name, first_name, salary, no_of_hours, hourly_wage)
汇总:
Employee (employee_id (PK), last_name, first_name, salary, bonus, no_of_hours, hourly_wage, type_of_employee)
我是否赞成其他任何映射(任何坚实/客观的理由支持其中一个)?如果是这样,有人可以解释为什么某些选择是有利的吗?