2015-05-07 29 views
0

我沿着ASP.net下面的教程由微軟和的WebAPI如下:如何決定實體存儲在數據庫中

Working With Data Tutorial

在這個例子中,創建了兩個獨立的模型:一個作者和書籍。當預訂存儲在數據庫中時,作者ID將作爲導航屬性與其一起存儲。

我的問題是這樣的:爲什麼我們需要爲作者提供一個單獨的表格。爲什麼不直接在Books表中存儲作者姓名?如果您有興趣查找獨特的作者,我們總是可以直接從Books表中進行查詢。

我想將這個問題擴展爲更一般的方法來決定在處理像這樣的數據時在單獨的表中存儲什麼。

謝謝。對不起,如果這是一個愚蠢的問題。

+1

標準化:http://en.wikipedia.org/wiki/Database_normalization –

回答

1

讓我們考慮它解決了考慮的方案有什麼問題 -

  1. 作者可以在成千上萬的書中以千字爲單位。所以要找到獨特的作者,我們將掃描百萬條記錄? - 號碼
  2. 關注分離 - 用作策略。當我只需要作者信息時,我會首先對書籍興趣最少。通過使用stategy,我可以制定不同的組合來爲具有所需子集的請求提供服務。
  3. 書可以有多個作者 - 是不是?那麼,如果我們有單一表格,那麼什麼應該是商店的策略,並且我們會發現難以形成子集? 在這種情況下,很難製作父母子女關係。書可以有作者和作者可以有書:-)。因此,在這種情況下,有兩個獨立的查詢實體將明確幫助您。
+0

謝謝先生..有道理:) – user3259937

0

可以這麼說,以後你想得到作者銀行帳號或者爲作者出售書籍等等的商店列表,我們不希望在他的每個表中都留下他\她的細節(這不僅僅是他的名字,因爲這意味着我們需要保留所有桌子,並且桌子很重,爲此我們創建了一個帶有作者標識符和他的\她的詳細信息的表格

美好的一天:)

相關問題