2012-05-05 15 views
2

私は貸与システムを実装しており、貸出レコードに使用する最も効率的な/データベース標準構造技術を見つけたいと思います。私は基本から始めましょう:データベース設計 - 貸与システム - 複数の顧客貸出

私は2つのテーブルがあります。

Customer_Record(ID、F_NAME、L_NAME、p_number)

Loaner_Pool(ID、モデル、serial_n、状態)

アイデアは、ローンプールがマウス/キーボード/ラップトップ/バッテリー/カメラ/などのギアのリストで構成されているということです。ステータスは、アイテムが予約されているかどうかを表します。 私が知りたいのは、顧客の個々のローンを保有するローンレコードテーブルをどのように設計するかです。 Iこのを行うための2つのアイデアた:

アイデア1

のような記号で区切られた顧客によって予約した全てのギアのIDを保持する「gear_list」と呼ばれる列を持つ1つのレコードのエントリを持っています"" など:

:ローン(ID、CUSTOMER_ID、gear_list、日付、ステータス)

例ローン

ローン[102,30001,23,34,949,293 "、タイムスタンプ、" out "]

このアイデアで私はエントリーを低く抑えています。しかし、私はギアのためのid値を分離するためにPHPで毎回 "gear_list"列を処理しなければならず、次にデータを得るために個々のSELECTを実行します。

アイデア2

は、顧客がテーブル内の個別のエントリとして融資を希望する各アイテムを持っています。テーブルはアイデア1と同じに見えるが、 "gear_list"は各貸出品目に対して1つのidのみを保持する。

:ローン(ID、CUSTOMER_ID、loan_pool_id、日付、ステータス)

例ローン: ローン[102、30001、 "23"、タイムスタンプ、 "アウト"]

ローン[102、30001、 "34"、タイムスタンプ、 "アウト"]

ローン[102、30001、 "949"、タイムスタンプ、 "アウト"]

ローン[102、30001、 "293"、タイムスタンプ "

この考え方のために、いくつかのローンが処理された後、レコードの量が多くなります。列 "gear_list"は1つのidしか保持しないので "loan_pool_id"になります。利点は、簡単な操作/レポートのために "loan_pool"にidを1つだけ持つことができることです。

状況を処理するより良い方法はありますか?

ありがとうございます!

答えて

2

2番目の選択は、リレーショナルデータベースシステムの正しい選択です。

データベースで格納する必要があるキーエンティティを決定し、正しい属性で設計します。

最初の方法は、1つのフィールドに複数のものを格納することです。通常、デザインが不良であることを示します。

+0

ありがとうございました! – Vidarious

関連する問題