2010-07-05 58 views
0

我正在寫一個簡單的遊戲編輯器來管理生物之間的關係。 生物表設置了一個ID,名稱等和一個布爾is_prey列; 我需要弄清楚如何在同一個表 之間定義一個ORM關係。b)如何限制'可用'其他節點只包括標記爲is_prey的那些節點。引用同一張表

使用場景如下:生物表包含三個生物; 鯊魚(ID 1),鯨魚(ID 2)和金槍魚(ID 3)。 金槍魚是可食用的(由鯊魚,並標記is_prey)。 現在,鯊魚被加載到CMS中。應出現「可用獵物」複選框,僅列出金槍魚作爲選項。

這張獵物地圖如何存儲(表格結構)?

謝謝!

進出口使用酷crud_scaffolding模塊的Kohana 2.3.4

回答

0

我認爲你需要在這裏兩個表,一個生物表來表示捕食關係的表:

CREATE TABLE creature (
    id INT, 
    name tinytext 
); 

    CREATE TABLE prey (
    predator INT, 
    prey INT, 
    FOREIGN KEY predator REFERENCES creature (id), 
    FOREIGN KEY prey REFERENCES creature (id) 
); 

這樣,一個生物可以成爲不止一個生物的犧牲品。

我不知道Kohana,所以你自己在那裏。

+0

這是什麼SQL語法?所有的NULLable列,沒有鍵(如果沒有鍵引用,FOREIGN KEY如何工作?),FOREIGN KEY不在列表中的列等 – onedaywhen 2010-07-06 09:35:48

+1

這並不意味着是一個黃金標準。這應該是一個人可以從事的工作。 – Kalium 2010-07-06 15:53:19