gpt4 book ai didi

database - 默认数据库 ID;系统和用户值

转载 作者:搜寻专家 更新时间:2023-10-30 22:23:05 25 4
gpt4 key购买 nike

作为我们当前数据库工作的一部分,我们正在研究处理更新数据库的过程。

反复提到的一点是处理系统值(value)与用户值(value);在我们的项目中,用户和系统值存储在一起。例如……

我们有一个模板列表。

1, <system template>

2, <system template>

3, <system template>

这些在应用程序中映射到枚举 (1, 2, 3)

然后一个用户进来并添加...

4, <user template>

...和...

5, <user template>

然后..我们发布升级..并作为我们升级脚本的一部分插入...

<new id> [6], <new system template>

THEN!!...我们在新系统模板中发现了一个错误,需要更新它...问题是怎么回事?我们无法使用 ID6 更新记录(因为我们可能将其插入为 9 或 999,因此我们必须使用其他机制来识别记录)

因此,我们为此找到了两种可能的解决方案。

在红色角落(速度)....

我们只需从 5000(或其他一些值)开始用户 ID,并在 10000(或其他一些值)测试数据。这将允许我们修改系统值并测试它们直到下一个 ID 范围的下限。

优点...快速且易于实现,

缺点...如果我们没有选择足够大的范围,可能会用完值!

在蓝色角落(可扩展性)...

我们分别存储系统和用户数据,使用 GUID 作为 ID,并使用 View 合并两个列表。

优点...可扩展...没有数据库大小限制。

缺点.. 实现起来更复杂。 (多对一可更新 View 等)


我坚决支持第一个选项,但我正在寻找一些弹药来支持我!

有没有人对这些方法有任何想法,甚至是我们错过的方法?

最佳答案

我在使用 GUID 作为我的数据库 ID 时从未遇到过问题(性能或开发 - 包括 TDD 和单元测试),而且我已经处理过一些相当大的问题。看看here , herehere如果您想了解更多有关使用 GUID(以及可能涉及的 GOTCHAS)作为主键的信息 - 但我不能高度推荐它,因为安全地移动数据和数据库同步变得像早上刷牙一样容易: -)

对于你上面的问题,我会推荐第三列(如果可能的话)来指示模板是基于用户还是基于系统,或者你至少可以在插入它们时为系统模板生成 GUID 并保留手头的列表,这样如果您需要更新模板,您可以在 DEV、UAT 和/或 PRODUCTION 数据库中定位相同的 GUID,而不必担心覆盖其他模板。第三列会派上用场,尽管可以随意选择所有系统或用户模板,而无需将它们分成两个表(恕我直言,这太过分了)。

希望对你有帮助

罗布

关于database - 默认数据库 ID;系统和用户值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702/

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