Как структурировать таблицу для объекта, который может иметь отношение от одного к самому себе? В частности, я работаю над приложением для отслеживания животноводства. У каждого животного есть удостоверение личности; у него также есть идентификатор сира и идентификатор дамы. Таким образом, у его отца может быть от одного до многих от отца или дамы. Я был бы склонен к чему-то вроде этого:Один из многих для себя
ID INT NOT NULL PRIMARY KEY
SIRE_ID INT
DAME_ID INT
и записать нулевое значение для тех животных, которые были приобретены и добавлены к племенному скоту и ID в таблице для остальные.
Итак:
- Может кто-то мне точку на статей веб-страницу /, посвященную моделирования такого рода отношения?
- Должен ли идентификатор быть INT или каким-то образом String? NULL в INT будет указывает, что у животного нет родителей в базе данных, но строка со специальными значениями флагов может быть используется для обозначения того же самого.
Возможно, это было бы лучше всего смоделировано через два стола? Я имею в виду одну таблицу для животных и отдельную таблицу , указывающую только родство e. г .:
животных
ID INT NOT NULL, PRIMARY KEY
Сходство
ID INT NOT NULL, PRIMARY KEY FOREIGN KEY
SIRE_ID INT PRIMARY KEY FOREIGN KEY
DAME_ID INT ПЕРВИЧНЫЙ КЛЮЧЕВОЙ ИНОСТРАННЫЙ КЛЮЧ
Приносим извинения за сказанное выше: мой SQL ржавый. Надеюсь, это похоже на то, о чем я думаю.
Если вы используете Oracle, ищите информацию о connect_path. это расширение для sql, которое позволяет создавать «иерархические запросы», извлекать в 1 запросе всех потомков или предков, которым нравится отношение, которое вы хотите. – helios 2008-10-01 22:15:05
@helios, Спасибо за это. – 2008-10-01 22:21:07