2010-04-29 63 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,那麼設計會更好,但我真的懷疑任何情況如何。

A面值得注意的是,它會只我個人看這樣的數據(或某人從採納我的項目)

回答

1

你的設計很好。父母之間不是多對多的關係,所以不需要單獨的鏈接表。

3

這是一個完全有效的關係數據庫設計,你可能會被看做自我連接來查詢數據。

+0

我得到了如何使用它的概念,如果它是一個好主意,我會更加好奇,不同的方法會有什麼不同。 – cyberzed 2010-04-29 15:16:54

+0

啊我明白了。我已經對使用這種設計的任何缺點進行了一些搜索,但我找不到任何缺點。我在自己的設計中多次使用過它。 – 2010-04-29 15:21:56

+1

如果FatherId和MotherId的那些零表示「未知」,那麼您可能希望將它們設爲NULL。否則,你需要爲Dog 0,一個未知的父母進入一個條目,然後他將成爲母親和父親。 – 2010-04-29 15:28:02