2010-12-09 34 views
0

我最近不得不使用應用程序,其中大多數表格不通過主鍵彼此引用,而是依賴於其他合成字段。例如,假設有Person Person(id,name,token)和Pet(id,name,personToken)。一個人可以有很多寵物。 Pet.personToken將是一個引用Person.token的外鍵。使用其他合成字段代替主鍵來引用表格

現在,如果我正在創建模式,我會簡單地使用Person.id引用記錄。我被告知應用程序使用「標記」列,以便更輕鬆地在不同服務器之間進行數據遷移。

我的問題是,這是相當常見的東西還是它只是奇怪的設計?

+0

主鍵的數據類型是什麼,即`id`和它如何與`tokens`數據類型進行比較?此外,生成`id`與相應的`tokens`的邏輯是什麼? – InSane 2010-12-09 04:35:51

+0

ID通常是自動遞增的整數。令牌通常是由用戶在某處手動輸入的字符串。 – 2010-12-10 00:08:43

回答

1

我不能說它在整個行業中是否普遍,但我看到過我在過去的許多應用程序中都做過同樣的事情。

我認爲這是一個奇怪的設計,最終被放置到位,因爲沒有足夠的思想被放入系統的初始設計。

1

這似乎只是一個奇怪的設計。

我以前沒見過這樣的東西。

這似乎是矯枉過正,我將不得不看到索引/外鍵實現。也不會看到令牌生成實施...

當你說的有人告訴我,該應用程序使用「令牌」列不同服務器之間的數據更容易遷移的緣故。這是爲了複製嗎?或者僅僅從測試到開發?

總而言之,這看起來並不像我過來的最好的設計。

相關問題