Tengo una tabla en un DB (basado en Postgres), que actúa como una superclase en la programación orientada a objetos. Tiene una columna 'tipo' que determina qué columnas adicionales deben estar presentes en la tabla (propiedades de subclase). Pero no quiero que la tabla incluya todas las columnas posibles (todas las propiedades de todos los tipos posibles).Estructura de base de datos óptima para campos adicionales entidad
Así que decidí hacer una tabla, con las columnas 'clave' y 'valor' (es decir 'nombrearchivo' = '/ archivo', o 'algún_valor' = '5'), que contienen cualquier propiedad posible del objeto, no incluido en la tabla de superclase. Y también creó una tabla relacionada para contener los valores 'clave' disponibles.
Pero existe un problema con dicha arquitectura: la columna 'valor' debe ser de un tipo de datos de cadena por defecto, para poder contener cualquier cosa. Pero no creo que la conversión hacia y desde cadenas sea una buena decisión. ¿Cuál es la mejor manera de eludir esta limitación?