那么这是我的问题我有三张桌子; 地区,国家,国家.国家可以在区域内,州可以在区域内.地区是食物链的顶端.
现在我添加一个包含两列的popular_areas表; region_id和popular_place_id.是否有可能使popular_place_id成为国家或州的外键.我可能不得不添加一个popular_place_type列来确定id是否描述了一个国家或州.
我的应用程序中有以下"评论"表:
comments
--------
id INT
foreign_id INT
model TEXT
comment_text TEXT
...
Run Code Online (Sandbox Code Playgroud)
这个表的想法是存储我的应用程序的各个部分的注释 - 它可以存储博客帖子的评论,即:
1|34|blogpost|lorem ipsum...
Run Code Online (Sandbox Code Playgroud)
用户图片:
2|12|picture|lorem ipsum...
Run Code Online (Sandbox Code Playgroud)
等等.
现在,有没有办法强制FOREIGN KEY约束这些数据?
即在评论表中这样的东西:
FOREIGN KEY (`foreign_id`) REFERENCES blogposts (`id`)
//but only when model='blogpost'
Run Code Online (Sandbox Code Playgroud) mysql sql database-design foreign-keys polymorphic-associations
设置外键约束的常用方法是选择外键指向哪个表.
我在1个表和一组表之间有多态关系.
这意味着该表将与集合中的其中一个表有关系.
例如.
images: person_id, person_type
subordinates: id, col1, col2...col9
products: id, colA, colB...colZ
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,如果person_type是"subordinates",那么person_id应该是subordinates.id的外键,并且产品也是如此.
所以我想知道,是否有可能将一个外键用于其中一个表,或者你必须专门设置它在指定一个表时指向哪个表.
这个问题适用于MySQL和PostgreSQL.
谢谢
我有三种基本类型的实体:人员,企业和资产.每个资产可以由一个且仅一个人或企业拥有.每个人和企业可以拥有0到多个资产.在Microsoft SQL Server中存储此类条件关系的最佳做法是什么?
我最初的计划是在Assets表中有两个可以为空的外键,一个用于People,一个用于Business.其中一个值将为null,而另一个将指向所有者.我在这种设置中看到的问题是它需要应用程序逻辑才能被解释和执行.这真的是最好的解决方案还是有其他选择?