关于关系型数据库第二范式的问题: 列之间计算出来的数据, 算违反第二范式么?

2022-07-13 03:57:53 +08:00
 ca1123

比如我有一个表记录事件, 包括一个列是发生时间, 那么我再记录一个发生间隔行么? 还是说和事件的性质有关? 如果事件是不会被删除的, 那就无所谓. 如果事件可能会被删除或者变化, 那就不能记录? 因为第二范式是为了保证列操作的独立性?

1105 次点击
所在节点    数据库
2 条回复
DonaldY
2022-07-13 08:54:45 +08:00
行。

第二范式属性完全依赖于主键。

举个栗子:
表 1 (订单 Id 、商品 Id 、商品名、数量、单位、价格),<订单 Id 、商品 Id> 为联合主键
但商品名只与商品 Id 相关,不与订单 Id 相关。

拆分为:表 1 (订单 Id 、商品 Id ),表 2 (商品 Id 、商品名、单位、价格),表 3 (订单 Id 、数量)
ca1123
2022-07-14 19:06:42 +08:00
@DonaldY 我想到一种情况, 就是说假设有事件 A, B, C, 我们来看 C, C 的间隔在记录的时候是 C-B, 但是如果 B 被删掉了, 是不是就变成 C-A 了? 这决定于事件这个 entity 的性质, 比如人事问题, 记录了什么, 是在职员工的, 还是历史员工的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865794

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX