小编Ace*_*Ace的帖子

条件外键关系

我目前在两个实体之间有一个外键,我想让这种关系以其中一个表的 entityType 为条件。这是表的层次结构,这是通过从子级到父级的FK 引用完成的

                  Store
            /                \
  Employees                    \
                             TransactionalStores
                            /       |         \
                     Kiosks         |          BrickMortars
                                 Onlines
Run Code Online (Sandbox Code Playgroud)

我目前有从员工到商店的 FK 关系

ALTER TABLE Employees ADD CONSTRAINT Employee_Store
            FOREIGN KEY (TransStoreId)
            REFERENCES TransactionalStores(StoreId)
Run Code Online (Sandbox Code Playgroud)

我想添加条件:

WHERE TransactionalStores.storeType != 'ONLINE_TYPE'
Run Code Online (Sandbox Code Playgroud)

这是可能的还是我必须将 TransactionalStores 子类化为两个新的子类型(例如 PhysicalStores 和 VirtualStores)

postgresql foreign-key database-design constraint

14
推荐指数
2
解决办法
1万
查看次数