私はITショップで働いており、私たちのハードウェアインベントリを追跡するデータベースを作成しようとしています。要点は、バーコード化された資産は、デスク、ラック、または何らかの種類のストレージ(棚、パレットなど)の1か所にしか置くことができないということです。資産在庫データベース設計
私はもともとこのようなものを持っていました。
Table Asset(barcode);
Table Rack(rack_id, rackName);
Table Desk(desk_id, deskName);
Table Storage(storage_id, StorageName);
そして、それぞれの「場所」テーブル(ラック、デスク、ストレージ)のために私は、資産が置かれた場所を追跡するためのテーブルを持っていた:
Table Desk_Item (desk_item_id, desk_id, barcode);
Table Rack_Item (rack_item_id, rack_id, barcode);
Table Storage_Item (storage_item_id, storage_id, barcode);
しかし、私は考えが好きではなかったです資産を追跡するための3つの別々のテーブルを持つこと。そこで、私は位置テーブルを作成する必要があると考えました
Table Location(location_id, barcode);
Table Rack(rack_id, rackName, location_id);
Table Desk(desk_id, deskName, location_id);
Table Storage(storage_id, StorageName, location_id);
Table Asset(barcode);
これで、位置テーブルはアセットの場所を記録します。しかし私が奇妙に思うのは、私がLocationテーブルに問い合わせると、私はRack、Desk、Storageをチェックする必要があるということです。それはこれを設計する正しい方法ですか?思考やアドバイスを感謝します。
なぜロケーションテーブルが必要なのですか?資産はいつでもどこかにある。それを資産テーブル –
に保存してください。私は、データベースに思考を持ち込んだ場所に資産を物理的に「置く」ことに非常に追いついた。ありがとう。 – Tony