2011-12-06 12 views
2

私は2つのテーブルがあります:pagesmenu外部キーまたはnull値

を私はpages.idへの外部キーとしてメニューテーブルへのポインタを持っていると思います。 問題は、一部のメニュー行にページへのリンクがないことです。 リンク内をクリックすると、サブメニューが開きます。 これはどのようにphpmyadminで行いますか?

私はID = pages.body = nullを とsome_idとすべてのメニューを持っていたページに行を持っている場合、私はしたい試合はたぶん1 1または1から

0おかげ

です私はサブメニューを持たずにmenu.pages_id = some_idを持っています これは正しい方法ですか?

答えて

2

menu.pages_idにいくつかのマジック値を使用すると、その値はpagesテーブルの一部の行に存在する必要があるため、機能しません。

これを行う正しい方法は、menu.pages_idをNULLにすることです。 UNIQUE制約とFOREIGN KEY制約の一部であっても、列がNULL可能であることは合法です。

CREATE TABLE menu (
    ... 
    pages_id INT NULL, 
    UNIQUE KEY (pages_id), 
    FOREIGN KEY (pages_id) REFERENCES pages(pages_id) 
) ENGINE=InnoDB;