Доброго времени суток!
Занимаюсь повышением скилла и понимания основ проектирования БД. Столкнулся с интересным заданием, которое пока не поддается решению и вот хочу некого взгляда со стороны:
Задание простое: представить генеалогическое древо в виде БД , так чтоб можно было проследить все связи между родителем и его потомком.
На данный момент думаю решение будет выглядеть так:
Табл 1 - Человек
id
name
birth
death
sex
child (fk-id)
Табл 2 - Потомок
id_child (FK - child)
name
P.S. поле name указал для простоты , заменяет ФИО. Также интересно узнать мнение почему моя схема не жизнеспособна и как ее можно улучшить/доработать
FanatPHP, схема должна содержать весь род, то есть более 1 связи "Ребенок - Родители".
Я хочу понять , как должна правильно выглядеть структура БД и связей между таблицами , чтоб прослеживалась цепочка: Есть потомок, у него два родителя, у этих родителей есть один или более потомков и тд. Очень интересует состав полей в таблице (таблицах) и связи между ними.
FanatPHP, Вторая таблица нужна для выделения потомка человека в табл1, чтоб прослеживалась связь Родитель - потомок. Почему только поле name: нет смысла составлять вторую идентичную таблицу , потому и сократил количество полей до двух.
То есть связь по имени? А как быть если двух человек зовут одинаково? Получится, что если у потомка будет указан папой Иван Иванович Иванов, и таких будет двое в БД, то у него окажется два папы?
А так-то да, я тоже не понимаю, зачем еще одна таблица. почему нельзя сослаться на запись в той же самой таблице-то?