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

时间:2015-01-19 23:58:08

标签: ms-access-2010 auto-increment

我在“另一个”编程论坛上,我们讨论的是在插入发生之前从自动增量字段中获取下一个数字(有一种方法可以使用ADOX)。这是在MS-Access数据库btw。

无论如何,讨论转向了应该使用自动增量字段的区域,例如发票编号,采购订单编号,提单编号或其他任何需要唯一增量编号的字段。

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

有人能给我一个很好的理由说明为什么会这样吗? 我已经使用自动数字字段多年来只是这种类型的东西,从来没有遇到过问题。

你的想法?

2 个答案:

答案 0 :(得分:1)

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

几年前Facebook有一个重大漏洞 - 仅仅因为他们使用AUTO_INCREMENT字段作为用户ID。如果我的身份证号码是10320,那么可能不会拿计算器来判断是否有人身份证号为10319等。

当调试(或校对设计)有一个隐含的数据代码的键是很容易的。

隐含数据的密钥会降低数据损坏的可能性(类型和用户猜测)。

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

除了最后期限经常紧张之外 - 没有很好的理由让自动增加。

答案 1 :(得分:1)

通常我会使用ID自动编号字段,因此我不需要考虑如何生成。

像插入和删除这样的记录集操作会改变跳过数字块的序列。

当您管理CustomerID,Invoice Numbers等时,最好完全控制它们,而不是让它们受系统控制。

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

使用自动编号,您无法管理此内容。

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

再见: - )