私はローンシステムを実装していますが、ローンレコードに使用する最も効率的な/データベースの標準構造手法を見つけたいと思います。基本から始めましょう:
私は2つのテーブルを持っています:
Customer_Record(id、f_name、l_name、p_number)
Loaner_Pool(id、model、serial_n、status)
アイデアは、貸し出しプールが次のようなギアのリストで構成されているということです:マウス/キーボード/ラップトップ/バッテリー/カメラ/など。ステータスは、アイテムが予約されているかどうかを表します。私が知りたいのは、顧客の個別のローンを保持するローン記録テーブルを設計する方法です。私はこれを行うための2つのアイデアを持っていました:
アイデア1
「gear_list」という列を持つ1つのレコードエントリがあります。この列には、顧客が予約したすべてのギアのIDが、「、」などの記号で区切られて保持されます。
表:loans(id、customer_id、gear_list、date、status)
ローンの例:
ローン[102、30001、 "23、34、949、293"、タイムスタンプ、"アウト"]
このアイデアで、私は自分のエントリーを低く抑えました。ただし、貸し出されたギアのID値を分離するために、PHPで毎回「gear_list」列を処理してから、個々のSELECTを実行してデータを取得する必要があります。
アイデア2
顧客が貸し出したい各アイテムをテーブルの個別のエントリとして用意します。テーブルはアイデア1と同じように見えますが、「gear_list」は貸し出されたアイテムごとに1つのIDしか保持しません。
表:loans(id、customer_id、loan_pool_id、date、status)
ローンの例:loans [102、30001、 "23"、timestamp、 "out"]
ローン[102、30001、 "34"、タイムスタンプ、 "out"]
ローン[102、30001、 "949"、タイムスタンプ、 "out"]
ローン[102、30001、 "293"、タイムスタンプ、 "out"]
このアイデアでは、多数のローンが処理された後、レコードの量が大幅に増加します。列「gear_list」は、IDを1つしか保持しないため、「loan_pool_id」になります。利点は、操作/レポートを簡単にするために、「loan_pool」にIDを1つだけ持つことができることです。
状況に対処するためのより良い方法はありますか?
前もって感謝します!