我是第一次创建数据库!目标是为用户建立一个数据库。我在本地主机上使用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 |
------------------------------
这将与以前的实现基本相同,但您将拥有一个结构更好的数据库。