对于Microsoft Access数据库中的主键值,如果禁止使用前导控制字符



如果主键(PK)值在表中是唯一的:

  • 防止(或劝阻)前导控制字符(如制表符)是必要的(或可取的)吗?

的背景

在Microsoft Access中选择正确的主键(Blue Moose Technologies, 2008)等文章警告用户不要键入主键值。

我读到,除其他事项外,Access不允许一个表具有null值的主键。

空值除外:Access 2010似乎允许在主键中使用前导制表符…虽然我不是数据库技术专家,但这给我带来了潜在的麻烦。

在表中使用主键的最佳实践是什么?

旧版本Access的参考点

用于命名,但不用于值:

手动创建表-编程Microsoft Access 2000 (Microsoft Programming Series)说明:

…不能以空格或控制字符(ASCII值0到31)作为字段名的开头。…

Microsoft的Access术语表2003声明,与标准命名约定有关:

…也不能使用前导空格或控制字符(ASCII值0到31)。…

文章…注意主键值可由用户输入

那是一篇非常糟糕的文章。

就关系模型而言,所有候选键都是平等创建的。对于有两个候选键的表,没有正式的逻辑原则可以让您说:"这个是唯一可以作主键的。"通常有一些实际的理由来选择一个而不是另一个,但是没有正式的、逻辑的理由。

必须有人输入所有数据库中的有用数据。有一些众所周知的、得到良好支持的处理印刷错误传播的方法,其中最常见的是在外键引用中使用on update cascade

SQL数据库为您提供了很多列允许的控制。在Access中,对列使用验证规则。

相关内容

最新更新