我正在创建一个有几张桌子的游戏。
它们如下
用户
user_id文字
session_id文字
last_login日期时间
会话
session_id文字
用户文字
类别文字
类别
category_id int
类别名称文字
我的主要问题是如何在会话表中存储类别列。每个会话都是游戏的一个实例,类别是用户选择的游戏类别。我想我可以只列出该会话中的category_id?在存储会话中的用户时,我也遇到同样的问题。
有人可以帮我更好的方法吗?
谢谢。
编辑:
user_id将是一个uuid。例如“ bcb4a209-3d90-4fe4-b8ed-594976a7b836”
last_login只是他们最后一次登录时的日期,所以它将是日期和时间
session_id将是8个字符的字母数字ID,例如“ 9KAN4P2X”
就目前而言,我对用户的想法是一个user_id列表,例如“ bcb4a209-3d90-4fe4-b8ed-594976a7b836、5a8b0148-f02b-4372-9ff7-781546b5c62d”
category_id将是一个整数,例如32
category_name只是标识类别的字符串,例如“食物”
categories将是category_id的列表,例如32、42、15
问题在于,我认为不建议像用户或类别那样存储列表,因此我想知道还应该怎么做。
答案 0 :(得分:0)
如果我答对了,那么您可以参加一个可以与多个类别相匹配的会议,对吗? 然后创建一个附加表,该表存储会话的ID和类别的ID。 然后,对于相同的会话ID,您将存储与类别一样多的行。 然后,您可以使用JOIN将会话详细信息与类别详细信息进行匹配。
SESSION_CATEGORY
id session_id category_id
-------------------------------
1 1 1
2 1 2
3 1 3
这将是表格的外观:对于会话1,您将分配类别1,2和3
然后做类似的事情
SELECT * FROM session_category
JOIN sessions on session_id=session.id
JOIN category ON category_id=category.id
(要根据您的数据进行优化的查询,只是一个草稿,向您解释JOIN概念)