我有一个我似乎无法找到解决方案的问题。我在这里浏览了类似的答案,但没有什么是我想要的。我对 SQL 相当熟悉,但无论如何都不是专家。
我有一张关于公寓楼信息的表格 - 名称、区域、社区、电话号码、地址、邮编等。目前,我在这张表格中定义了几个便利设施,例如“门卫”、“电梯”、“健身房”(和其他几个)作为tinyints来指示建筑物是否确实具有这种舒适性。然而,我正在整合更多的便利设施类型,我认为这可能是改变结构的时候了,因为在巨大的建筑物桌子上添加柱子并没有太大意义。
因此,我正在寻找一种解决方案,它可以为我提供执行以下操作的最佳能力:1) 根据用户定义的便利设施搜索建筑物(例如,用户选择他想查看必须有健身房和门卫的建筑物,不关心其他人)2)返回有关建筑物的数据,包括建筑物包含的所有便利设施(用于显示信息)
我正在考虑将这些结构分成多对多关系并执行以下操作:1)创建名为“设施”的新表,其中包含所有设施,具有以下结构:id -> 设施名称的唯一 id -> amenity 值的文本描述 -> 例如“pet_friendly”(用于在表单中搜索,不确定是否有必要)
2) 在另一个名为“building_amenities”的表中创建建筑物和便利设施之间的关系表,其结构如下: id -> 关系 building_id 的唯一 id -> 引用建筑物 amenity_id 的 id -> 引用 amenity 的 id value -> tinyint,建筑物是否有便利设施 在这张表中,每栋建筑都会与每个便利设施有关系,并指示它是否有。
我的问题是我不确定这是否是适合这种情况的正确结构,如果我有这种结构,我当然不知道如何实现搜索查询。
非常感谢您对此的任何帮助!