使用PHPMyAdmin并创建一个包含多个条目的列


Using PHPMyAdmin and creating a column which would have multiple entries?

我是第一次创建数据库!目标是为用户建立一个数据库。我在本地主机上使用PHPMyAdmin(XAMPP)来设置它。

这对于"用户名"answers"密码"之类的东西来说非常简单,但其中一个字段是用户参与的活动列表

例如,"活动:滑雪、划船、游泳"将是他们页面上的样子。

但我不知道如何在PHPMyAdmin上设置它。我不能只创建一个VARCHAR(255)类型的名为"Activities"的字段,因为我认为它会将他们的兴趣存储在一个框中,这是不好的,因为我需要对这些兴趣进行单独排序,以便以后访问(例如,我需要查询所有有"Swimming"活动的用户)。

理想情况下我应该使用什么方法?

谢谢!

users

---------------------------------------
| id |  username  |     password      |
---------------------------------------
| 1  |    john    |  somehashedpass1  |
| 2  |    carl    |  somehashedpass2  |
| 3  |    maria   |  somehashedpass3  |
---------------------------------------

activities

--------------------------------------
| id |  user_id  |     activity      |
--------------------------------------
| 1  |     1     |      Skiing       |
| 2  |     1     |      Rowing       |
| 3  |     1     |     Swimming      |
| 4  |     2     |      Skiing       |
| 5  |     2     |      Rowing       |
| 6  |     3     |      Skiing       |
--------------------------------------

然后使用JOIN或Sub查询来获取所需的数据。

此外,您可以实现一个3表模式来定义用户、活动和关系,如下所示:

users(无变化)

---------------------------------------
| id |  username  |     password      |
---------------------------------------
| 1  |    john    |  somehashedpass1  |
| 2  |    carl    |  somehashedpass2  |
| 3  |    maria   |  somehashedpass3  |
---------------------------------------

activities

-----------------
| id | activity |
-----------------
| 1  |  Skiing  |
| 2  |  Rowing  |
| 3  | Swimming |
-----------------

relationships

------------------------------
| id | user_id | activity_id |
------------------------------
| 1  |    1    |      1      |
| 2  |    1    |      2      |
| 3  |    1    |      3      |
| 4  |    2    |      1      |
| 5  |    2    |      2      |
| 6  |    3    |      1      |
------------------------------

这将与以前的实现基本相同,但您将拥有一个结构更好的数据库。