我正在为我的公司构建业务应用程序,并努力为特定情况选择最合适的数据库设计。假设我有以下实体:
赞同
审批意见
命令
发票
显然可能有多种类型的批准和多个需要批准的对象。以下选项中最适合设计表格的选项是什么:
选项1
有一个带有空外键的批准表:
批准
审批意见
在这种情况下,我必须为每个需要批准的对象添加一列
选项 2
有一个带有公共字段的父 Approvals 表,以及每个需要批准的对象的子表:
批准
审批意见
订单批准
发票审批
选项 3
每个对象都有一个批准表:
订单批准
订单批准评论
发票审批
发票审批备注
我知道这些都是有效的解决方案,但我无法决定哪一种最适合将来添加不同类型的批准。有什么想法吗?
sre*_*mer 10
我使用的一条经验法则是,如果将来可以计划,必须更改表以适应代码更改或新功能是糟糕的数据库设计。
也就是说,我会使用选项 1 的变体
Approvals
Id PK
ApprovalTypeID FK
Status
ApprovalComments
ID PK
ApprovalId FK
Comment
ApprovalTypes
ID PK
Name
Run Code Online (Sandbox Code Playgroud)
现在,在添加需要批准的新对象类型时,您只需在 ApprovalTypes 中插入一行,而无需更改表格以添加列。
归档时间: |
|
查看次数: |
2765 次 |
最近记录: |