2016-10-11 3 views
1

Ich arbeite in einem IT-Shop und versuche, eine Datenbank zu erstellen, um unser Hardwareinventar zu verfolgen. Das Wesentliche ist, dass ein mit Strichcode versehenes Asset nur an einem Ort sein kann, entweder an einem Schreibtisch, in einem Rack oder in irgendeiner Art von Speicher (auf einem Regal, einer Palette usw.).Asset Inventory Database Design

Ich hatte ursprünglich so etwas.

Table Asset(barcode); 
Table Rack(rack_id, rackName); 
Table Desk(desk_id, deskName); 
Table Storage(storage_id, StorageName); 

Und für jede „Lage“ -Tabelle (Rack, Schreibtisch, Storage) hatte ich einen Tisch, um zu verfolgen, wo ein Vermögenswert getätigt:

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); 

Aber mir die Idee nicht gefallen von drei separaten Tabellen, um die Vermögenswerte zu verfolgen. Also dachte ich, ich sollte eine Location-Tabelle

machen So jetzt die Location-Tabelle verfolgt, wo das Asset ist. Aber was mich verrückt macht ist, dass wenn ich die Location-Tabelle abfrage, ich Rack, Desk und Storage überprüfen muss. Ist das der richtige Weg dies zu gestalten? Schätze deine Gedanken oder Ratschläge.

+0

Warum brauchen Sie eine Standorttabelle überhaupt? Ein Asset ist irgendwo, immer. Speichern Sie es in der Asset-Tabelle –

+0

Das ist sinnvoll. Ich war so sehr damit beschäftigt, einen Gegenstand an einem Ort zu "putten", den ich in die Datenbank mitgenommen hatte. Vielen Dank. – Tony

Antwort

0

Sie sollten eine location_type Tabelle haben.

location_type_id location_type 
     1    Rack 
     2    Desk 
     3    Storage 

Diese haben auch den Vorteil, wenn Sie eine andere location_type wie ex später hinzufügen möchten:'truck' Sie nicht die db ändern müssen, fügen Sie einfach einen neuen type

Und anstelle von mehreren Tabelle für Rack, Desk, Storage eine einzige Tabelle location

location_id  location_type_id name 
    1     1   'Im a Rack' 
    2     1   'Im another Rack' 
    3     2   'Im just a desk' 

Finale ly Ihre Assets Tabelle

barcode   location_id 
xxxxxx    1   -- is in first rack 
yyyyyy    2   -- is in the second rack 
+0

Ich mag dies. Meine Tische sind etwas komplexer als das, was ich gezeigt habe, aber ich werde sehen, wie ich diese Ideen umsetzen kann. Danke. – Tony