jl6*_*jl6 2 database-design metadata
我所说的元数据是指诸如:
据我所知,这只是数据。我可以通过给一个实体表一个用户表的外键来实现实体所有权;我可能会将所有文本字段存储为两个字段:内容和格式。等等...
就实际的数据库设计而言,数据和元数据之间有什么区别吗?为什么我可能想将元数据存储在数据库以外的地方?
大多数 DBMS 已经在数据库中存储元数据。该数据通常存储在广泛称为“系统表”的内容中。
DBMS 将存储的元数据将是操作数据库所需的元数据。您提到的某些类型的元数据,例如所有权、权限,甚至可能的格式和描述性名称已经存储在您的 DBMS 系统表中。
其他类型的元数据(例如数据输入的日期/时间)是面向记录的,而不是您可以在 DBMS 的系统表中找到的面向表或列的元数据。面向记录的元数据需要使用您自己设计和实现的机制进行存储。通常,这意味着直接将面向记录的元数据与您的记录一起存储。在某些情况下,您可能会发现将某些面向记录的元数据规范化为公共存储库很有帮助。跟踪多个表的事件的事件日志就是此类公共存储库的一个示例。
您如何处理元数据取决于您需要它做什么。作为最佳实践,让 DBMS 做它设计要做的事情。如果 DBMS 自动跟踪元数据,则不要手动跟踪元数据。仅手动跟踪额外的元数据。