sql - 与主键混淆

标签 sql database database-design primary-key

我是设计数据库的新手。也许这是一个愚蠢的问题,所以请原谅我。所以问题是我正在为用户设计数据库。用户填写注册信息后,他将获得唯一的收据号码。所以我的问题是因为收据号。是唯一的,我可以将其用作 Users 表中的主键,还是应该坚持使用将 userID 分配给表中的每一行并使用 userID 作为主键的标准方法?

最佳答案

一张表可以有多个键。如果收据编号旨在是唯一的,并且您希望 DBMS 强制执行对该属性的键依赖性作为数据完整性约束,那么您应该将其设为键(通过 PRIMARY KEY 或 UNIQUE 约束或 DBMS 的任何机制实现唯一性)提供)。

将任何一个键指定为“主”键并不是特别重要 - 或者至少它的重要性与您希望的一样重要。真正重要的是您选择的全套 key 。任何 key 的要求是唯一性和不可约性。选择 key 的明智标准还有:熟悉、简单和稳定性

关于sql - 与主键混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814900/

相关文章:

Sql Server 2008 更新查询花费了太多时间

SQL Server Management Studio 需要完整的表路径

sql - 什么是 SQL 程序员的好 'FizzBuzz' 问题?

mysql - Hive 使用子查询填充表

sql - 错误 : could not access file "$libdir/postgis-2.0" postgresapp

sql-server - 将本地数据库迁移到 sql azure 数据库时,它会忽略所有表创建脚本中的 DEFAULT (newid())

php - 当达到表中的时间时更新 mysql

SQL - 1 个包含许多 NULL 值或许多小表的大表

MySQL数据库设计用户评分

数据库设计 : Running totals of row counts