我有一个非常基本的数据库,只有一个主表和一些查找 - 没有关系。
主表中的自动编号字段与其表单关联的代码很少,但我注意到每10条记录左右会跳过一个数字。
我已经将用户锁定得非常紧张,因此他们没有删除访问权限,并且只能在创建后非常谨慎地修改记录。他们无法删除错误的条目 - 他们必须勾选一个名为CANCELED的框,以便从列表中删除条目并重新开始。 - 删除记录的唯一方法是SHIFT-OPEN,打开表格并从那里删除......我怀疑他们这样做但是一切皆有可能......
问题是这个 - 我已经看到很多关于类似发布的网络讨论,但解决方案通常指向一些代码或格式问题或SQL / Access事物......我没有这样的系统......它是一个直的前端/ back end DB使用本地网络上的链接表。 有人可以建议这是否只是一个Access的东西,只是忽略它或这是非常不寻常的事情正在进行中有人正在删除记录...如果有人正在删除记录 - 有什么方法我可以PW保护如果它试图在编辑模式下打开?或者我可以PW保护桌子本身吗?。
甚至更好 - 有没有办法我可以添加一些字段和代码,看看到底发生了什么?是否是访问只是没有创建#或有人在搞乱我? 感谢
答案 0 :(得分:1)
数据库自动编号的基本规则就是内部数字 - 故事的结尾!我的意思是当你加载word文档时你是否关心使用的内存段号?自动编号用于设置表之间的关系。它们是一个“概念”,如果表格是通过图片链接,丛林中的猿类吃香蕉或一些自动麻木序列,你不在乎。
但是,要回答您的问题,如果您跳转到新记录,然后开始输入,则记录很脏。当然用户可能会决定,嘿,我不想添加此记录。如果他们进行编辑 - >撤消,或点击control-z然后退出,则不会创建记录,也不会保存记录。但是,自动编号将增加。我的意思是因为数据库是多用户的,然后一个用户开始工作,然后另一个用户 - 他们都将被分配一个自动号码 - 但两者都可能决定不保存。
自动数字不会给最终用户带来意义,实际上它们永远不应该是它们。用户永远不会看到记录或word文档加载到的计算机内存段 - 他们不关心。
内部索引以及如何布置表以及它们如何工作的方式是数据库引擎的SOLE问题,并且ZERO与您或您的用户有关。
当然,您现在“意识到”您的计算机有内存,但您不会暴露最终用户使用的“内存”位置,因为此类内部管家号码只是内部管家号码。
除了用户点击取消和添加记录之外,一般删除记录也会产生差距。
如果您要查找某种数字序列,请创建发票编号字段,或其他任何内容。虽然可能需要发票号,但如果您使用内部自动号码,那么您的数据库设计可以运行,因为您没有一些社会保险号或一些愚蠢的发票号。作为桌子之间发展中的建筑关系,他们与你有什么关系? (答案:绝对没有任何东西!!!)
您的数据库在没有发票号或其他号码的情况下正常运行这一事实与零用于内务管理和维持关系的内部数字有关。
您可以在数据库中定义关系 - 这些关系与您的用户的想法,知道等有关。这些数字没有更多的含义,然后您的计算机中使用的内存段可以加载记录。
如果您需要某种发票编号或其他序列号,则必须将该设计部件添加到数据库中。这些数字与一些内部数字有关,这些数字是Access使用和维护以与之建立关系的。
在多用户环境中,由于添加或删除,您作为一般规则也可能假设自动编号是随机的 - 它们对用户没有意义,也不对任何需要某种序列号的业务规则有意义