我有两张桌子:
users (user_id, user_name, user_email, user_pass)
&
toys (name, box)
我需要每个用户都有自己的玩具桌。基本上,用户的表格是我的登录表格,玩具是用户登录后选择玩具的地方。
答案 0 :(得分:1)
向Users和Toys添加一个具有FK(外键)的额外表,作为多对多关系的表
即。创建一个名为user_toys的表,每行包含toy_id和user_id组合。然后,如果您想获得特定用户的所有玩具名称,您可以这样做
SELECT t.name
FROM Toys t,
User_toys relation,
WHERE relation.toy_id = t.toy_id
AND relation.user_id = :user_id
(注意,如果关系表中已经有user_id,则不需要加入Users表)
如果每个玩具只能属于一个用户(1对多),那么在Toys表上为user_id FK添加额外的列就足够了。但听起来像你的问题每个用户都有他们独立的玩具集。
答案 1 :(得分:0)
你好,你需要表中的一个字段玩具来使你的表成为关系,这是我的基于你的模式
这是玩具
+--------+-------------+--------------+-----+
| id_box | id_box_user | id name | box |
+--------+-------------+--------------+-----+
| 1 | 1 | Name toys 1 | box |
| 2 | 2 | Name toys 3 | box |
+--------+-------------+--------------+-----+
然后这是用户
+---------+-------------+------------+-----------+
| user_id | user_name | user_email | user_pass |
+---------+-------------+------------+-----------+
| 1 | user name 1 | email | pass |
| 2 | user name 2 | email | pass |
+---------+-------------+------------+-----------+
你需要像这样的查询来获取特定用户的所有数据
SELECT * FROM user a, toys b where a.user_id=b.id_box_user_id
但是对于特定用户使用此
SELECT * FROM user a, toys b where a.user_id=b.id_box_user_id and a.user_id='variable which store session'