gpt4 book ai didi

database-design - 支持表上的自然键与代理键

转载 作者:行者123 更新时间:2023-12-02 00:16:33 26 4
gpt4 key购买 nike

<分区>

我读过很多关于自然主键与代理主键之间的较量的文章。我同意使用代理键来识别其内容由用户创建的表的记录。

但是在支持表格的情况下我应该使用什么?

例如,在一个假设的表“orderStates”中。此表中的值不可编辑(用户不能插入、修改或删除此值)。

如果您使用自然键,将有以下数据:

TABLE ORDERSTATES
{ID: "NEW", NAME: "New"}
{ID: "MANAGEMENT" NAME: "Management"}
{ID: "SHIPPED" NAME: "Shipped"}

如果我使用代理键将有以下数据:

TABLE ORDERSTATES
{ID: 1 CODE: "NEW", NAME: "New"}
{ID: 2 CODE: "MANAGEMENT" NAME: "Management"}
{ID: 3 CODE: "SHIPPED" NAME: "Shipped"}

现在让我们举个例子:用户输入了一个新订单。

在使用自然键的情况下,在代码中我可以这样写:

newOrder.StateOrderId = "NEW";

每次我有一个额外的步骤时,都使用代理键。

stateOrderId_NEW = .... I retrieve the id corresponding to the recod code "NEW"

newOrder.StateOrderId = stateOrderId_NEW;

每次我必须将订单移动到新状态时,都会发生同样的情况。

那么,在这种情况下,选择一种 key 类型而不选择另一种 key 类型的原因是什么?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com