引用同一个表

时间:2010-07-05 22:37:47

标签: sql orm kohana crud

我正在为游戏编写一个简单的编辑器来管理生物之间的关系。 生物表设置有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

1 个答案:

答案 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,所以你自己就在那里。