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

时间:2016-01-01 03:09:20

标签: php mysql

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

对于诸如“用户名”和“密码”之类的内容,这非常简单,但其中一个字段将是用户参与的活动列表。

例如,“活动:滑雪,划船,游泳”将会在他们的页面上显示出来。

但我不知道如何在PHPMyAdmin上设置它。我不能只创建一个名为“活动”的VARCHAR(255)类型的字段,因为我认为它会将它们的兴趣存储在一个框中,这是不好的,因为我需要将它们分开排序以供以后访问(例如,我需要查询所有共同参与“游泳”活动的用户。

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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或子查询来获取所需的数据。

此外,您可以实现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      |
------------------------------

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