我正在为游戏编写一个简单的编辑器来管理生物之间的关系。 生物表设置有id,name等和boolean is_prey列; 我需要的是弄清楚如何 a)可以在同一个表的id之间定义ORM关系 b)如何将'available'其他节点限制为仅包括标记为is_prey的节点。
使用场景如下:生物表包含三个生物; 鲨鱼(ID 1),鲸鱼(ID 2)和金枪鱼(ID 3)。 金枪鱼是可食用的(由鲨鱼,并标记为is_prey)。 现在,鲨鱼被加载到CMS中。应出现“可用猎物”的复选框,仅列出金枪鱼作为选项。
如何存储这个猎物地图(表格结构)?
谢谢!
我使用酷的crud_scaffolding模块和Kohana 2.3.4
答案 0 :(得分: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,所以你自己就在那里。