我是第一次创建数据库!目标是为用户建立一个数据库。我在我的localhost(XAMPP)上使用PHPMyAdmin来设置它。
对于诸如“用户名”和“密码”之类的内容,这非常简单,但其中一个字段将是用户参与的活动列表。
例如,“活动:滑雪,划船,游泳”将会在他们的页面上显示出来。
但我不知道如何在PHPMyAdmin上设置它。我不能只创建一个名为“活动”的VARCHAR(255)类型的字段,因为我认为它会将它们的兴趣存储在一个框中,这是不好的,因为我需要将它们分开排序以供以后访问(例如,我需要查询所有共同参与“游泳”活动的用户。
理想情况下我应该采用什么方法?
谢谢!
答案 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 |
------------------------------
这与以前的实现基本相同,但您将拥有更好的结构化数据库。