下午好。我的任务是启动框架(用于最终小组项目),为拟议的公司构建、维护和分配 MySQL 数据库。该公司有许多建筑物,其中可能有多个楼层和多个房间。数据库应存储所有建筑物、它们的 GPS 位置、它们的楼层数、与之对应的平面图图像、它们的所有房间以及它们在建筑物内的位置。
目前,我有一个包含一张表“Buildings”的数据库。在“建筑物”中,我有以下行:ID、名称、纬度、经度、楼层数、平面图图像 (x4)。我假设最多有四层楼。 [可能是个坏主意]
我现在对如何存储所有房间、平面图和房间在平面图中的位置感到困惑。
我最初的想法是为每个建筑物创建一个新表,并为房间号、相应的平面图和位置(纬度/经度)创建行。然而,如果公司有 100 多座建筑,而每座建筑可能只有一层和几个房间,那么我认为这就太过分了。另外,我认为处理 100 个表是不好的做法。
有没有更简单的方法来处理许多建筑物,但房间数量和楼层不同?
如有任何建议,我们将不胜感激!
最佳答案
每个实体都应该有自己的表。这些表将使用 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
关于mysql - 关于建筑物和平面图的数据库设计查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36899806/