在数据库中存储单个记录的元数据的最佳实践是什么?
我需要在数据库中存储常见的元数据,例如创建时间和最后更新时间。我找到了几种不同的解决方案:
将元数据直接存储在表中。
优点:
- 元数据直接链接到记录
- 无需联接即可检索元数据
缺点:
- 需要大量重复的列(除非使用继承)
- 元数据和业务数据不分开
使用创建通用元数据表,并使用软外键将数据链接到正确的表和记录。
优点:
- 没有重复的列
- 元数据与业务数据分开
缺点:
- 元数据和数据之间没有直接链接(不能使用FK)
- 加入需要附加条件
为每个需要元数据的表创建单独的元数据表。
优点:
- 元数据直接链接到记录
- 元数据与业务数据分开
缺点:
- 需要很多额外的表
- 需要大量重复的列(除非使用继承)
是否有比我在这里提到的更多的优缺点?存储此元数据的最佳实践是什么?
@a_horse_with_no_name-现在,我只需要创建时间,更新时间和创建源。字段是固定的,因此不需要像存储这样的键值。我只担心应该在哪里存储数据。
—
Tiddo 2013年
然后,我看不出没有任何理由不将这三列添加到基表中。
—
a_horse_with_no_name13年
hstore
或JSON
列可以解决您的问题?