2012-05-05 75 views
2

我正在實施一個借用系統,並希望找出用於貸款記錄的最高效/數據庫標準結構技術。讓我從基礎開始:數據庫設計 - 借用系統 - 客戶借出多個項目

我有兩個表:

Customer_Record(ID,f_name,l_name,p_number)

Loaner_Pool(ID,型號,serial_n,狀態)

這個想法是,貸款人池由一系列的設備組成:Mouse/Keyboard/Laptop/Batteries/Camera/etc。狀態表示該項目是否已預訂。 我想知道的是如何設計貸款記錄表,以保存客戶的個人貸款。我不得不這樣做的兩個想法:

想法一

有有一個名爲「gear_list」將舉行由像一個符號分隔客戶預訂了所有齒輪的id的列一個記錄條目「」 如:

:貸款(ID,CUSTOMER_ID,gear_list,日期,狀態)

例貸款

貸款[102,30001,「23,34,949,293」,時間戳,「出」]

有了這個想法,我保持我的輸入低。不過,我必須每次都在PHP中處理「gear_list」列,以便分離借出的齒輪的id值,然後執行單個SELECT來獲取數據。

Idea 2

將客戶想要貸款的每個項目作爲表中的單獨條目進行貸款。這個表格看起來與想法1相同,但「gear_list」只能爲每個借出物品保留一個id。

:貸款(ID,CUSTOMER_ID,loan_pool_id,日期,狀態)

例貸款: 貸款[102,30001, 「23」,時間戳, 「出」]

貸款[102,30001, 「34」,時間戳, 「出」]

貸款[102,30001, 「949」,時間戳, 「出」]

貸款[102,30001, 「293」,時間戳「退出「]

對於這個想法,記錄數量將增加很多貸款後處理。列「gear_list」變成「loan_pool_id」,因爲它只保存一個id。好處是能夠在「loan_pool」中只有一個id,以便輕鬆操作/報告。

有沒有更好的方法來處理這種情況?

在此先感謝!

回答

2

您的第二選擇是關係數據庫系統的正確選擇。

您正在確定數據庫需要存儲的關鍵實體,然後使用正確的屬性設計它們。

第一種方法是將多個東西存儲在單個字段中,通常表示設計不佳。

+0

感謝您的輸入! – Vidarious