gpt4 book ai didi

database - 为什么负 id 或零被认为是不好的做法?

转载 作者:太空狗 更新时间:2023-10-30 01:40:17 25 4
gpt4 key购买 nike

为什么在数据库表中插入主键时,负 id 或零被认为是不好的做法?

我认为它在某些情况下可能有用,但人们说不推荐这样做,尽管他们从来没有说/不知道为什么。

所以,我想知道根据定义,是否存在一些限制,或者它是否应该没有任何问题,或者它是否只是一个约定,如果真的有一些限制,为什么不阻止该功能?

最佳答案

需要明确的是,这个问题和答案是关于使用负数作为代理键,而不是自然键。

据我所知,将其视为不良做法的原因有以下三个。

  1. 它违反了 principle of least surprise
  2. 有些人假设所有 ID 号都是非负数。
  3. 有些人使用负数来表示错误。

第一个有一定的道理。您永远不会在 SO 上看到使用负 ID 号的 SQL 示例或答案。 (我打算从今天开始改变这一点。)

第二个和第三个是第一个的推论,因为程序员通常会假设没有意外行为。 (这让我想起发现 VBA 可以让我将两个日期相乘,返回一个数字,我猜,用方形日期表示。)

对于第 2 种情况,应用程序程序员可能会通过不允许登录 UI 代码留出空间而引入细微错误,这可能会使 -123456 看起来像 123456。

第三个与编写返回 ID 号的代码有关。返回单个 ID 号的代码可能会返回 -1 作为错误代码。但在大多数情况下,-1 是一个有效的 ID 号。 (大多数数据库不会将 id 号限制在非负整数范围内。)

关于database - 为什么负 id 或零被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927761/

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