数据库中哪些属性是核心主属性,哪些是非核心非主属性?
- 内容介绍
- 文章标签
- 相关推荐
主要主属性是能够唯一标识实体的一个或多个字段。它们在整个表中必须满足以下四大特性:
- 唯一性每一行的数据值只能出现一次不能重复。
- 非空性不能为空,否则无法完成唯一标识。
- 稳定性值应保持相对不变,避免频繁更新导致关联数据失效。
- 简洁性尽量短小、易于存储和索引,提高查询性能。
常见痛点 & 对策
- 痛点:不知道该选哪个字段做主键。
- 对策:可以优先考虑业务上天然唯一且不可变的字段,如身份证号、学号、订单号等;若不存在则考虑使用程序生成的自增ID或 UUID。
- 痛点:主键过长导致查询慢、索引膨胀。
- 对策:使用整数型自增键或短字符型,避免把大文本或复合自然键直接设为主键。
- 痛点:误将可变字段设为主键,引发级联更新异常。
- 对策:确保选定字段在业务生命周期内不会变化;若必须变化,请使用代理键来承担唯一标识职责。
非主要非主属性指除主要主属性之外用来描述实体特征的所有字段。它们的主要特点如下:
- 可重复性同一列可以出现相同值,例如“姓名”“年龄”。不过,
- 可空性可以允许为空值。
主要主属性是能够唯一标识实体的一个或多个字段。它们在整个表中必须满足以下四大特性:
- 唯一性每一行的数据值只能出现一次不能重复。
- 非空性不能为空,否则无法完成唯一标识。
- 稳定性值应保持相对不变,避免频繁更新导致关联数据失效。
- 简洁性尽量短小、易于存储和索引,提高查询性能。
常见痛点 & 对策
- 痛点:不知道该选哪个字段做主键。
- 对策:可以优先考虑业务上天然唯一且不可变的字段,如身份证号、学号、订单号等;若不存在则考虑使用程序生成的自增ID或 UUID。
- 痛点:主键过长导致查询慢、索引膨胀。
- 对策:使用整数型自增键或短字符型,避免把大文本或复合自然键直接设为主键。
- 痛点:误将可变字段设为主键,引发级联更新异常。
- 对策:确保选定字段在业务生命周期内不会变化;若必须变化,请使用代理键来承担唯一标识职责。
非主要非主属性指除主要主属性之外用来描述实体特征的所有字段。它们的主要特点如下:
- 可重复性同一列可以出现相同值,例如“姓名”“年龄”。不过,
- 可空性可以允许为空值。

