2010-04-29 2 views
0

В настоящее время я планирую часть программного обеспечения для dogbreeders и я в сомнении о моей datadesign ... правильно ли я делаю что-то умное или глупое :)Родитель-ребенок таблица макет

Плана на момент один целостный «собака» таблица Сорта, как это ...

Id | Name | FatherId | MotherId 
------------------------------- 
1 | A | NULL  | NULL 
2 | B | 1  | NULL 
3 | C | NULL  | NULL 
4 | D | NULL  | 3 
5 | E | 1  | 3 
6 | F | 5  | 2 
7 | G | 4  | 3 

Мои вопросы, это общее, чтобы сделать это так или это действительно неаккуратно. Я могу видеть причину быстрого поиска, чтобы иметь его, но я действительно сомневаюсь, хорошо это или плохо в конце. Я думаю, что было бы лучше спроектировать, если бы у меня был rel-table на стороне с Id-связью, но я действительно сомневаюсь, насколько хорошо в любом случае.

Примечания стороны является то, что это будет только быть мне лично, глядя на данных, таким образом (или кто-то приняв проект от меня)

ответ

1

Ваш дизайн в порядке. Родитель для ребенка не является отношением «многие ко многим», поэтому нет необходимости в отдельной таблице ссылок.

3

Это вполне правильная реляционная структура базы данных, вы, вероятно, будете смотреть на делая самосоединения для запроса данных.

+0

У меня есть концепция использования, было более любопытно, если бы это была хорошая идея, каково падение различных методов ее выполнения. – cyberzed

+0

А я вижу. У меня было немного поиска по любым недостаткам для использования этого дизайна, но я не могу найти его. Я использовал его много раз в своих собственных проектах. –

+1

Если эти нули для FatherId и MotherId означают «неизвестно», вы можете вместо этого сделать их NULL. В противном случае вам нужно будет сделать запись для Dog 0, неизвестного родителя, который тогда будет и матерью, и отцом. –

Смежные вопросы