我在数据库中有一个表(基于 Postgres),它就像面向对象编程中的超类。它有一个“类型”列,用于确定表中应存在哪些附加列(子类属性)。但我不希望该表包含所有可能的列(所有可能类型的所有属性)。
所以我决定制作一个表,包含“key”和“value”列(即“filename”=“/file”或“some_value”=“5”),其中包含对象的任何可能属性,不包括在内在超类表中。并且还制作了一个相关表来包含可用的“关键”值。
但是这种架构存在一个问题——默认情况下,“值”列应该是字符串数据类型,才能包含任何内容。但我不认为转换为字符串和从字符串转换是一个好的决定。绕过此限制的最佳方法是什么?