下午好。我的任务是启动框架(针对最终小组项目),为拟建公司建立,维护和分配MySQL数据库。该公司有许多建筑物,其中可能有多个楼层和许多房间。数据库应存储所有建筑物,其GPS位置,层数,与之对应的平面图图像,所有房间及其在建筑物内的位置。
目前,我有一个包含一个表“ Buildings”的数据库。在“建筑物”中,我具有以下各项的行:ID,名称,纬度,经度,层数,平面图Image(x4)。我假设最多有四个楼层。 [可能是个坏主意]
现在,我对如何存储所有房间,平面图以及房间在平面图中的位置一无所知。
我最初的想法是为每座建筑物创建一个新表,并在其中列出“房间号”,相应的楼层平面图和“位置”(纬度/经度)。但是,如果该公司拥有100多个建筑物,而每个建筑物可能只有一个楼层和几个房间,那么我认为这将是过大了。另外,我认为处理100张桌子是不好的做法。
是否有一种更简单的方法来处理大量建筑物,但房间数量和楼层不同?
我们欢迎所有的建议!
最佳答案
每个实体应具有自己的表。这些表将使用Primary Keys
和Foreign 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/