2016-04-27 4 views
0

午後。私は、提案された会社のためにMySQLデータベースを構築、保守、および配備する際のフレームワーク(最終的なグループプロジェクトのため)を開始することを任されています。この会社には多くの建物があり、複数のフロアと多数の部屋を持つ場合があります。データベースには、すべての建物、GPSの場所、階数、それらに対応するフロアプラン画像、すべての部屋、建物内の場所が格納されている必要があります。データベース設計お問合せ先建物・フロアプラン

現時点では、1つのテーブル「建物」を持つデータベースがあります。 「建物」には、ID、名前、緯度、経度、階数、フロアプランイメージ(x4)の行があります。私は最大4フロアあると仮定しています。 [おそらく悪いアイデア]

enter image description here

私は今、私はすべての客室に、フロアプラン、およびフロアプラン内の部屋の場所を保存する方法で立ち往生しています。

最初の考えでは、各建物の新しいテーブルを作成し、ルーム番号、対応するフロアプラン、ロケーション(緯度/経度)の行を作成しました。しかし、100社以上の建物があり、各建物に1つのフロアと2つの部屋しかない場合は、これは過度のことだと思う。プラス私はテーブルの100の扱いが悪い習慣だと思う。

多くの建物を扱うのは簡単ですが、部屋の量や床はさまざまですか?

どのような提案も大歓迎です!

答えて

3

各エンティティには独自のテーブルが必要です。テーブルはPrimary KeysForeign Keysを使用してリンクされます。フロア数をハードコードする必要はありません。COUNT機能を使用してフロア数を取得する必要があります。

Normalizeデータベースは3NFまでです。ここで

は、あなたのDBがどのように見えるかです:ちょうど簡単な質問として

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

、画像を保存するための好ましい方法/データ型はありますか? –

+0

また、私はちょうど部屋番号と建物を与えられていると言うと、私はどのように床の計画を出すのか分からないようです... –

+0

@DoveDevicあなたはデータベースに画像全体を保存すべきではありません。 BLOBを使用する必要があります。 http://stackoverflow.com/questions/6472233/can-i-store-images-in-mysql –