【发布时间】:2020-03-23 14:07:11
【问题描述】:
我们在 sql 数据库中有一个包含三列的表:t1c1、t1c2 和 t1c3。
当我在表中插入新行时,我将填充前两列(t1c1 和 t1c2)的值,但第三列(t1c3)在第一次插入时将始终为空。之后系统内部发生了一些事情,它将填充t1c3 的值。
我的问题是关于标准化的。 t1c3 列真的应该是 table1 的一部分,还是应该是另一个表 (table2) 的一部分,只有一列 (t2c1) 等于 (t1c3)。
【问题讨论】:
-
只有在桌面上有触发器时才会发生这种情况。否则,它是您的插入代码中的错误。
-
我不同意。在某些情况下可能会发生这种情况。示例:我们有一个带有 id、name 和 address 的用户表。最初我们可能在用户身份验证时没有地址,但在电子邮件身份验证后的稍后时间,用户可能希望提供他的地址,该地址将填充第三列。
-
@niteshmalav 。 . .我将您的问题解释为数据库在第一次插入时生成第三列
NULL。为此,您需要一个触发器。像往常一样,样本数据和期望的结果可能会阐明您想要做什么。 -
明白。我想给出一个像上面这样的示例,但它会再次只关注用例的一个方面,这可能会以不同的方式解释问题,而其他一些用例可能会做出不同的推断。
标签: mysql sql postgresql database-normalization