如果主键(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中,对列使用验证规则。