使用自动编号数据库字段理论



我在"另一个"编程论坛上,我们正在谈论在插入之前从自动增量字段中获取下一个数字(有一种方法使用 ADOX)。顺便说一句,这是在MS-Access数据库中。

无论如何,讨论转向了"

您是否应该使用自动增量字段"区域,例如发票编号,PO编号,提单编号或任何其他需要唯一递增编号的内容。

我的想法是"为什么不"?其他人则认为,发票编号(例如)应作为单独的表进行管理,并使用代码递增,而不是使用自动编号字段。

有人能给我一个很好的理由来解释为什么这是真的吗?多年来,我一直使用自动编号字段来处理此类事情,但从未遇到过问题。

你的想法?

我一直避免使用数字auto_increment。 事实证明,这是有充分理由的。但最初我的理由是因为这是教授告诉我们的。

Facebook几年前发生了重大违规行为 - 仅仅是因为它们使用AUTO_INCREMENT字段作为用户ID。 不需要计算器来计算如果我的 ID 是 10320,则可能有 ID 为 10319 的人,等等。

在调试(或校对设计)时,拥有一个隐含它所表示的数据的键要容易得多。

具有隐含的数据键可降低损坏数据(类型和用户猜测)的可能性。

隐式键要求开发人员考虑它们是数据。 我从未遇到过使用未规范化的隐式键的表。

除了截止日期通常很紧之外 - 没有很好的理由自动增加。

通常我使用 和自动编号字段作为 ID,所以我不需要考虑如何生成。

插入和删除等记录集操作会更改数字的序列跳过块。

当您管理客户ID,发票编号等时,最好完全控制它们,而不是让它们处于系统的控制之下。

您可以使用规则创建一个函数,为您生成所需的数字(例如,发票可以是包含开票日期的函数)。

使用自动编号,您无法管理此功能。

在那之后,没有关于做什么和不做什么的固定规则。这只是你的实践和经验以及你想要的自由程度。

再见:-)

最新更新