sql表中状态的最佳类型是什么?
我需要存储实体的状态,但我一直在思考什么是更好的sql类型。我正在使用postgresql,并看到以下可能性:sql表中状态的最佳类型是什么?,sql,postgresql,types,enums,status,Sql,Postgresql,Types,Enums,Status,我需要存储实体的状态,但我一直在思考什么是更好的sql类型。我正在使用postgresql,并看到以下可能性: 瓦尔查尔 枚举 单独参考表 枚举并不坏,即使我将添加新的状态,现在它似乎比引用表更简单和清晰。是这样吗 另一个问题是,在select查询中,什么是性能更好的选项?枚举类似于int,但引用表转向带有连接的查询或where exists查询以按状态筛选 帮助我了解什么更好?如果状态可能位于多个表中,那么我建议使用一个参考表。这可确保状态一致 在单个表中,可以使用带有检查约束的varchar
帮助我了解什么更好?如果状态可能位于多个表中,那么我建议使用一个参考表。这可确保状态一致 在单个表中,可以使用带有检查约束的
varchar()
列。然而,我可能仍然倾向于参考表
参考表除了一致性之外还有另一个优点。它使存储有关状态的信息变得更容易——例如,短名称、长描述、“某些属性的默认”值等等。谢谢。这意味着,如果实体是复杂的,而不是有参考地位。但是性能呢?@Dmytro。小型引用表的联接通常对性能有难以衡量的影响。也就是说,性能影响可以忽略不计——好吧,只有一个例外。通常,用于处理数据的整数键小于用于表示数据的字符串。这可能是一个巨大的性能胜利,因为原始表中的数据页更小。