我对我做错的事情有基本的 SQL 问题。所以我想问一下实现这一目标的正确方法是什么。 我有房间的 table 。房间有房间大小、名称和墙壁颜色。房间里有家具 table ,可以放很多家具。将多个家具连接到房间的正确方法是什么?例如:
Room Table
roomID: 5
size: 15
wallColor: Blue
haveFurniture: 2,4,5 //This is the part I`m not sure about
Furniture Table
furnitureID 2
type: table
color: wood
Furniture Table
furnitureID 4
type: closet
color: wood
etc...
那么,将家具与房间连接的正确方法是什么?用户可以创建多个房间和多个家具
最佳答案
创建一个多对多 (n-m) 关系表来连接两者。根据您的注释:
RoomHasFurnature Table
roomID 5
furnitureID 2
RoomHasFurnature Table
roomID 5
furnitureID 4
RoomHasFurnature Table
roomID 5
furnitureID 5
然后,您可以使用联接来提取该数据。这是一个粗略的例子:
SELECT * FROM Room
LEFT JOIN RoomHasFurnature USING(roomID)
INNER JOIN Furniture USING(furnatureID)
这将为每个家具项目提供一行。您可以使用 GROUP_CONCAT()
SELECT r.*, GROUP_CONCAT(f.type) FROM Room AS r
LEFT JOIN RoomHasFurnature USING(roomID)
INNER JOIN Furniture AS f USING(furnatureID)
关于mysql - 在 SQL 中存储数据的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571687/