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

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

mysql - 有关建筑物和平面图的数据库设计查询-LMLPHP

现在,我对如何存储所有房间,平面图以及房间在平面图中的位置一无所知。

我最初的想法是为每座建筑物创建一个新表,并在其中列出“房间号”,相应的楼层平面图和“位置”(纬度/经度)。但是,如果该公司拥有100多个建筑物,而每个建筑物可能只有一个楼层和几个房间,那么我认为这将是过大了。另外,我认为处理100张桌子是不好的做法。

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

我们欢迎所有的建议!

最佳答案

每个实体应具有自己的表。这些表将使用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

关于mysql - 有关建筑物和平面图的数据库设计查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36899806/

10-11 05:22