假设我想为收集各种罕见视频游戏的用户提供一个用户表。进一步假设我为可以由这些用户创建和保存的视频游戏列表制作了模型。如何将列表保存在数据库中。
例如,我的想法是在用户表中会有一个名为game_list的单元格,它是一个以逗号分隔的游戏列表(' s)。这些游戏是一个单独的表格,其中包含静态游戏数据和统计数据,用户可以从中选择这些数据来创建他们罕见的游戏列表。
这是最好的方法吗?顺便说一下,我正在使用rails,以防特定的解决方案。我知道这个问题相当普遍,但是我很难将问题写成谷歌和这个网站以获得我正在寻找的答案。我对Web开发很新(主要是SQL和HTML5部分),但不是编程(已经编程了很长时间)。
谢谢!
答案 0 :(得分:1)
你可以做的就是制作表格,这样用户就可以选择他们想要存储哪些游戏。然后你拿用户选择的游戏并制作一个阵列。
在数组中的Foreach游戏中,您对数据库中包含游戏数据的表进行查询,然后获取id并创建数组。然后在php(http://php.net/manual/en/function.serialize.php)中使用var game_list = serialize($array)
,并使用从serialize()
获得的变量更新用户表。
如果您想获取数据并再次将其转换为数组,则应使用var game_list = unserialize($row)
。
答案 1 :(得分:1)
这是一种多对多的关系。人们通常使用用户信息表,游戏信息表以及每个用户 - 游戏关系表来对其进行建模:
create table user(
user_id int primary key,
user_name varchar(255));
create table game(
game_id int primary key,
game_name varchar(255));
create table user_game(
user_id int not null references user(user_id),
game_id int not null references video(video_id));
insert into user values (1, "ed"), (2, "bob");
insert into game values (1, "pacman"), (2, "poker");
insert into user_game values (1, 1), (1, 2), (2, 2);
select user_name, game_name
from user
natural join user_game
natural join game;