2016-04-27 9 views
0

Guten Tag. Ich habe den Auftrag, das Framework (für ein Endgültiges Gruppenprojekt) beim Aufbau, bei der Pflege und beim Zuweisen einer MySQL-Datenbank für ein vorgeschlagenes Unternehmen zu starten. Diese Firma hat viele Gebäude, und von ihnen können mehrere Stockwerke und viele Räume haben. Die Datenbank sollte alle Gebäude, ihren GPS-Standort, ihre Anzahl von Stockwerken, die entsprechenden Grundrissbilder, alle ihre Räume und ihre Standorte innerhalb des Gebäudes speichern.Datenbank Design Anfrage in Bezug auf Gebäude und Grundrisse

Im Moment habe ich eine Datenbank mit einer Tabelle, "Gebäude". In "Gebäude" habe ich Zeilen für Folgendes: ID, Name, Breitengrad, Längengrad, Anzahl der Etagen, Grundriss Bild (x4). Ich gehe davon aus, dass es maximal vier Stockwerke gibt. [Wahrscheinlich eine schlechte Idee]

enter image description here

ich jetzt stecken mit, wie ich will alle Räume speichern, die Grundrisse, und die Zimmer Lage im Grundriss.

Mein erster Gedanke war, eine neue Tabelle für jedes Gebäude zu erstellen und Zeilen für Raumnummer, entsprechenden Grundriss und Standort (Lat/Long) zu haben. Aber wenn das Unternehmen, sagen wir, über 100 Gebäude hat und jedes Gebäude vielleicht nur eine Etage und ein paar Zimmer hat, dann wäre das wohl zu viel. Außerdem denke ich, dass der Umgang mit 100er Tabellen eine schlechte Übung ist.

Gibt es einen einfacheren Weg, mit vielen Gebäuden umzugehen, aber mit unterschiedlichen Raumgrößen und Stockwerken?

Alle Vorschläge würden sehr geschätzt werden!

Antwort

3

Jede Entität sollte ihre eigene Tabelle haben. Die Tabellen werden mit Primary Keys und Foreign Keys verknüpft. Die Anzahl der Etagen sollte nicht fest codiert sein. Sie sollten die Anzahl der Etagen mit der Funktion COUNT abrufen.

Normalize Ihre Datenbank bis zu 3NF.

Hier ist, was Ihr DB aussehen sollte:

Buildings: 
BuildingID(PK) 
LongName 
ShortName 
Latitude 
Longitude 
etc 

Floors: 
FloorID(PK) 
BuildingID(FK) 
FloorName 
etc 

FloorPlans: 
FloorPlanID(PK) 
FloorID(FK) 
FloorPlanName 
FloorPlanImage 

Rooms: 
RoomID(PK) 
FloorID(FK) 
RoomNumber 
Latitude 
Longitude 
RoomSize 
etc 
+0

So wie eine kurze Frage, gibt es eine bevorzugte Art und Weise/Datentyp das Bild zu speichern? –

+0

Auch sagen, ich habe nur eine Zimmernummer und ein Gebäude, ich kann nicht sehen, wie ich einen Grundriss bekommen würde ... –

+0

@DoveDevic Sie sollten nicht ganze Bilder in einer Datenbank speichern, aber wenn Sie muss BLOB verwenden. http://stackoverflow.com/questions/6472233/can-i-store-images-in-mysql –