我正在设计一个包含 table 的数据库reference
,其中的一列type
是几个预定义值之一(例如,book
、movie
、magazine
等)。我打算随着时间的推移扩大可能值的范围(例如,如果我意识到我错过了academic_paper
类型,我希望能够把它放进去)。
最简单的解决方案似乎是将表示类型的字符串简单地存储到表中。但这听起来会导致大量空间浪费。
我想到的另一个解决方案是创建一个新表reference_types
,该type
列在其外键中引用该表。这似乎具有确保有效外键的额外好处(这样我就不会在代码中的某处意外输入“杂志”),可能允许对某种类型的所有媒体进行更快的查询(因为整数比较应该很多比字符串比较快),但也会减慢我的应用程序速度,因为每当我需要引用类型时都需要连接,并且可能由于这些额外的连接而使逻辑复杂化。
你对这个问题的模式设计有什么想法?