0
我有一个存储对象属性的表。每个属性在表中都有它自己的行,并且它引用另一个表中的对象ID。属性目前是布尔类型(0),数字(1)或自由文本(2),它们存储单个值。列中的不同数据类型
问题是,我该如何确定哪一行是哪一种?属性表是否有一个名为type
的列,然后将该值存储在单独的TEXT
列中,或者可能将该值存储为JSON对象?有没有一个好的解决方案呢?我相信我在这里担心的是保存数据类型,如果数据存储在TEXT
列中,则可能难以处理。
我的直觉告诉我,将类型和值存储在JSON对象中将成为这里的一种方式。
对象表:
id | name
-----+-----
123 | abc
思路属性表:
id | object_id | type | data
----+-----------+------+-------
1 | 123 | 1 | 123.12
2 | 123 | 0 | f
的属性表的其他想法:
id | object_id | type | data
----+-----------+-----------------------
1 | 112 | 1 | {value:123.12}
2 | 112 | 0 | {value:false}
'pg_typeof(column_name)'会告诉你类型 –
我想在单个列中存储不同类型的数据并保留它们的数据类型,所以我不认为'pg_typeof()'会帮助我。我编辑了标题以更好地描述我的问题。 – Nysten
然后考虑使用json数据类型而不是文本 –