我基本上有一个包含rowid
,person_id
(此处不是importane),key
和value
的表格。我的问题是我的应用程序需要能够支持不同类型的value
:一些int,一些文本字段,以及一些包含多条信息的复合类型。我能想到解决这个问题的唯一方法是将value
更改为value_table
和value_id
,其中我为每种类型的值都有不同的表格,value_id
是表value_table
给出的所需值的主键。
我是SQL的新手,所以我想知道这是不是因为某种原因我不在想。将value_id作为多个表中的外键似乎很奇怪,而且似乎很难编写查询以启用数据访问(特别是因为我是从Django的ORM中执行此操作) )。
使用更多详细信息进行修改:
我的应用程序包含用户添加的字段,其中用户设置字段的名称(如地图键)和值,以及值的类型。该值可以是布尔值或整数到10000+字符文本字段或由多个SQL基元类型组成的复合类型。
我可以在文本字段中使用JSON,但是我永远不能通过值实现任何类型的排序或过滤,这是一项要求。