我的数据库A,B,C,D中有几个表。
我需要这些表有一个信息键,值映射链接到它们。 如果应该有一个表E需要一组“key,value”信息标签,就这样设置。
这是一个糟糕的数据库设计吗?我的胃里有一种感觉,它不漂亮。
Table A,B,C,D
info_group_id (reference to Info_group.id)
Table Info_group
id serial
Table Information_tag
info_group_id (reference to info_group.id),
key varchar(64),
value integer
答案 0 :(得分:0)
听起来你的(设置)fk关系正在与实际依赖关系相反的方向运行。
我设置键/值或标记数据库的方式如下:
Tag
=================
id
value/information
TableA
========
id
column1
column2
......
TagReferenceTableA
====================
tableA_Id -- fk to TableA
tag_id -- fk to Tag
这允许外键和级联删除到引用表。您将无法从标记表中删除作为级联的一部分的引用(好吧,没有触发器或其他东西),也可能不应该。