Q主键在数据表中具体承担什么作用?我在设计表结构时,主键看起来只是一个字段,它为什么会被特别强调?
A主键用于唯一标识一条记录
主键的核心作用是让每一行数据都能被准确识别,便于查询、更新、关联和删除。它像记录的身份证,确保系统能够稳定定位到具体数据,避免出现同名、同内容记录难以区分的情况。
Q如果两条记录的主键相同,会给系统带来什么问题?当主键出现相同值时,数据库为什么会阻止这种情况?它会影响到哪些操作?
A重复主键会破坏数据唯一性
一旦主键重复,数据库就无法区分两条记录,查询结果可能混乱,更新和删除也可能作用到错误的数据。对于关联表来说,外键引用会失去可靠性,数据一致性也会受到影响。
Q主键和唯一约束有什么区别?我看到有些字段也要求不重复,那主键和唯一约束是不是一回事?
A主键更强调身份标识
主键用于唯一标识记录,通常还要求不能为空。唯一约束也要求值不重复,但它更偏向于限制字段值的唯一性,不一定承担记录身份标识的职责。一个表里可以有多个唯一约束,但主键通常只有一个。
Q业务字段能直接拿来做主键吗?比如手机号、身份证号这类字段,能不能直接作为主键来用?
A要看字段是否稳定且适合长期标识
业务字段只有在长期稳定、不会变更、且确实能唯一标识记录时,才适合考虑作为主键。若字段可能修改、重复或受业务规则影响,使用自增ID、UUID这类更稳定的标识方式会更合适。