有关建筑物和平面图的数据库设计咨询

时间:2016-04-27 20:03:21

标签: mysql database database-design

下午好。我的任务是在为建议的公司构建,维护和分配MySQL数据库时启动框架(针对最终组项目)。该公司有许多建筑物,可能有多个楼层和许多房间。数据库应存储所有建筑物,其GPS位置,楼层数,与其对应的楼层平面图,所有房间以及建筑物内的位置。

目前,我有一个包含一个表“数据库”的数据库。在“建筑物”中,我有以下行:ID,名称,纬度,经度,楼层数,楼层平面图(x4)。我假设最多有四层楼。 [可能是一个坏主意]

enter image description here

我现在不知道如何存储所有房间,平面图和平面图中的房间位置。

我最初的想法是为每个建筑物创建一个新表格,并有房间号,相应楼层平面图和位置(纬度/长度)的行。然而,如果该公司拥有100多座建筑物,而且每栋建筑物可能只有一层楼和几间房间,那么我认为这样就太过分了。另外,我认为处理100张桌子是不好的做法。

处理大量建筑物是否有更简单的方法,但房间数量和楼层不同?

任何建议都会非常感谢!

1 个答案:

答案 0 :(得分:3)

每个实体都应该有自己的表。表格将使用Primary KeysForeign Keys进行关联。楼层数不应硬编码,您应使用COUNT函数检索楼层数。

Normalize您的数据库最多3NF

以下是您的数据库应该是什么样的:

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