gpt4 book ai didi

mysql - 在 SQL 中存储数据的正确方法

转载 作者:行者123 更新时间:2023-11-29 07:11:24 24 4
gpt4 key购买 nike

我对我做错的事情有基本的 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()

在某些 SQL 方言中压缩它
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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com