2010-03-18 97 views
0

我試圖找出一個合理的方法來設計一個數據庫,我需要存儲各種不斷變化的寵物信息。數據的類別可以分解爲例如行爲,疾病等。數據將定期提交與這些類別相關的信息,所以我需要找到一種設計數據庫以有效地適應這種情況的好方法。一個簡單的方法就是爲每個相關表中的每個寵物存儲多個記錄 - 例如,行爲表將存儲行爲數據,並且每個記錄的簡單時間戳以及該寵物的標識符。查詢數據庫時,使用時間戳輸出正確的提交歷史記錄可以直接查詢帶有寵物ID的一個表。有沒有更合理的解決方法呢,還是有道理的?數據庫設計查詢

+0

等一下,你已經忘記了一些東西.. – Roman 2010-03-18 15:14:38

+0

如果你花時間接受最好的答案,你可能會開始接受更多的幫助。不這樣做對許多人是灰心的。 – northpole 2010-03-18 15:24:18

+0

相信與否我真的不知道這樣做 - 道歉,我現在有一個OpenID帳戶,所以我會通過我以前的帖子,並修復它們 – kenny99 2010-03-18 15:35:00

回答

3

我會結合使用查找表和強大的外鍵使用。我認爲你的建議非常普遍。例如,讓我所有的particluar寵物的病例報告在此範圍內的數據會看起來像:

Select * 
    from table_illness 
where table_illness.pet_id = <value> 
    and date between table_illness.start_date and table_illness.finish_date 

你可以做到這一點對任何表中。查找表將成爲例如table_illness.illness_type和illness_types.illness_type之間的鏈接。 sick_types表是您將存儲疾病類型細節的地方。

+0

這正是我在想,謝謝你的答覆 – kenny99 2010-03-18 15:21:56

2

設計數據庫時,應該建立表格來模擬真實的對象或概念。所以從這個意義上說,你建議的設計是合理的。每隻寵物都應該在寵物表中有自己的記錄,但不會改變。然後將更改的信息放入具有寵物身份的適當表格中。你建議的時間戳方法可能是我會做的 - 除非當然這是一個獸醫或其他東西。然後我會創建一個預約表,並將疾病或行爲與預約聯繫起來。