Ссылки на ту же таблицу - PullRequest
0 голосов
/ 06 июля 2010

Я пишу простой редактор для игры, чтобы управлять отношениями между существами. Таблица существ настроена с идентификатором, именем и т. Д. И логическим столбцом is_prey; что мне нужно, это выяснить, как а) отношение ORM может быть определено между идентификаторами из одной и той же таблицы б) как ограничить «доступные» другие узлы, чтобы они включали только те, которые помечены как is_prey.

Сценарий использования будет выглядеть следующим образом: таблица существ содержит три существа; акула (ID 1), кит (ID 2) и тунец (ID 3). Тунец съедобен (акула, и отмечен is_prey). Теперь акула загружается в CMS. Должны появиться флажки «доступная добыча», в качестве опции указывается только тунец.

Как будет храниться эта карта добычи (структура таблицы)?

Спасибо!

Я использую классный модуль crud_scaffolding с Kohana 2.3.4

1 Ответ

0 голосов
/ 06 июля 2010

Я думаю, вам нужны две таблицы: таблица существ и таблица для представления отношений хищник-жертва:

  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, так что вы там одни.

...