我有2个表:pages
和menu
我希望将一个指向菜单表的指针作为pages.id的外键。 问题是某些菜单行没有指向页面的链接。 当有人点击链接时会打开一个子菜单。 我是怎么在phpmyadmin中这样做的?
我想要的比赛是1比1还是1比0
由于
也许如果我有一行到页面的id = some_id与pages.body = null 并且我想要没有子菜单的所有菜单都有menu.pages_id = some_id 这是我想要的正确方法吗?
答案 0 :(得分:2)
使用menu.pages_id
的某个魔术值不起作用,因为该值必须存在于pages
表的某一行。
执行此操作的正确方法是使menu.pages_id
接受NULL。即使列是UNIQUE约束和FOREIGN KEY约束的一部分,列也可以是可空的。
CREATE TABLE menu (
...
pages_id INT NULL,
UNIQUE KEY (pages_id),
FOREIGN KEY (pages_id) REFERENCES pages(pages_id)
) ENGINE=InnoDB;