2014-01-13 55 views
0

我需要創建一個系統,用戶可以添加貓或狗,但我不知道如何設計表來處理它。sql - 最佳設計練習表

首先:

  1. 用戶可以添加狗和貓
  2. 狗和貓有一些不同的列所需
  3. 他們每個人都有一個種族(如人類,我不知道知道這是否正確)

例如對於狗我需要2個特定的領域,對於貓我需要其他2個特定領域,然後我有大約5/6共享領域。

哪個是最佳做法?兩個不同的表,或只是一個單一的一個與一列名爲type其中:

類型= 1是狗
類型= 2是貓
並設置NULL,我並不需要特定的領域?

同樣的問題是,狗的種族和貓的種族......是更好的單獨一個表,其中存儲他們所有的人,並與他們分開type列?
或者兩個不同的表格是正確的方法?

+1

只要沒有太多空/浪費的列,對所有列使用一個表就沒有問題。就個人而言,我寧願有一個寵物表與共享列與貓/狗的其他兩個表(PK/FK =寵物鏈接到寵物表)。無論哪種方式,無論您選擇哪種方式,都應儘量在應用程序的其餘部分保持一致。 – valverij

回答

0

我會說:開始簡單。一個用於動物類型的表格(它可以是一個顯式的varchar,如'DOG'和'CAT'),一個表格用於種族,還有一個類型列。在其上插入ORM會更容易,而且如果需要運行某些統計信息,則更容易查詢。

與這是唯一可能的麻煩是: - 越來越多列,將是獨有的一種動物,導致一些重重構 - 寵物的類型列和種族之間可能失配,如果應用程序混亂與數據