下午好。我的任务是在为建议的公司构建,维护和分配MySQL数据库时启动框架(针对最终组项目)。该公司有许多建筑物,可能有多个楼层和许多房间。数据库应存储所有建筑物,其GPS位置,楼层数,与其对应的楼层平面图,所有房间以及建筑物内的位置。
目前,我有一个包含一个表“数据库”的数据库。在“建筑物”中,我有以下行:ID,名称,纬度,经度,楼层数,楼层平面图(x4)。我假设最多有四层楼。 [可能是一个坏主意]
我现在不知道如何存储所有房间,平面图和平面图中的房间位置。
我最初的想法是为每个建筑物创建一个新表格,并有房间号,相应楼层平面图和位置(纬度/长度)的行。然而,如果该公司拥有100多座建筑物,而且每栋建筑物可能只有一层楼和几间房间,那么我认为这样就太过分了。另外,我认为处理100张桌子是不好的做法。
处理大量建筑物是否有更简单的方法,但房间数量和楼层不同?
任何建议都会非常感谢!
答案 0 :(得分:3)
每个实体都应该有自己的表。表格将使用Primary Keys
和Foreign Keys
进行关联。楼层数不应硬编码,您应使用COUNT
函数检索楼层数。
以下是您的数据库应该是什么样的:
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