我是第一次创建数据库!目标是为用户提供一个数据库。我在本地主机 (XAMPP) 上使用 PHPMyAdmin 进行设置。
这对于“用户名”和“密码”之类的内容非常简单,但其中一个字段将是用户参与的事件列表。
例如,“事件:滑雪、划船、游泳”就是他们页面上的样子。
但我不确定如何在 PHPMyAdmin 上进行设置。我不能只创建一个名为“Activities”的 VARCHAR(255) 字段,因为我认为它会将他们的兴趣存储在一个框中,这不好,因为我需要将它们分开排序以供以后访问(例如,我需要查询所有具有共同“游泳”事件的用户)。
理想情况下我应该使用什么方法?
谢谢!
表用户
---------------------------------------
| id | username | password |
---------------------------------------
| 1 | john | somehashedpass1 |
| 2 | carl | somehashedpass2 |
| 3 | maria | somehashedpass3 |
---------------------------------------
表事件
--------------------------------------
| 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 |
---------------------------------------
表事件
-----------------
| id | activity |
-----------------
| 1 | Skiing |
| 2 | Rowing |
| 3 | Swimming |
-----------------
表关系
------------------------------
| id | user_id | activity_id |
------------------------------
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 2 |
| 6 | 3 | 1 |
------------------------------
这与之前的实现基本相同,但您将拥有结构更好的数据库。