【问题标题】:Foreign key or null value外键或空值
【发布时间】:2011-12-06 17:58:16
【问题描述】:

我有 2 张桌子:pagesmenu

我想要一个指向菜单表的指针作为 pages.id 的外键。 问题是某些菜单行没有页面链接。 当有人点击链接时,会打开一个子菜单。 我如何在 phpmyadmin 中做到这一点?

我想要的匹配是 1 对 1 或 1 对 0

谢谢

也许如果我有一行到具有 id=some_id 且 pages.body=null 的页面 并且我想要没有子菜单的所有菜单都会有 menu.pages_id=some_id 这是我想要的正确方法吗?

【问题讨论】:

    标签: mysql key unique


    【解决方案1】:

    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;
    

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      相关资源
      最近更新 更多