使用PHP在MySQL中存储用户选择的有效方法?

时间:2011-01-14 07:31:06

标签: php mysql

我无法找出存储用户想要查看的信息的最佳方式。我为无法找到一个简单的方法来解释我的问题而道歉,但是这里(例如,水果是为了这个):

假设我的用户可以选择跟踪冰箱中的以下水果:

苹果,橘子,葡萄,梨

数据库已经设置了一个名为'fruits'的表,其中Apples为id_fruit = 1,Oranges为id_fruit = 2等。

就像我说的所有用户都有OPTION来跟踪这些成果,但是......我目前无法找到一种简单的方法来存储用户选择他们想要跟踪的WHICH水果。如果用户1不喜欢苹果,他可以进入他的设置,取消选中苹果,不再让苹果显示在他的仪表板中。

我能想到存储此信息的唯一方法是创建一个包含字段user_id,apples,orange,grapes,pears的表。然后为结果存储user_id和Yes / No或0/1。

如果我想添加更多水果或其他任何东西,这会引起严重的悲痛。

使用PHP在MySQL中存储此信息的最佳方法是什么?我将如何检索该信息。

用户登录,查看他想要查看水果的数据库,并只显示他选择的水果。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

这是一种经典的,属于多人的,或者只是多对多的关系。

Table `users`
=============
id
name
...

Table `fruits`
==============
id
name
...

Table `users_fruits`
====================
id
user_id
fruit_id

users_fruits中,每个用户 - 水果关系存储一行:(user_id: 42, fruit_id: 3)

答案 1 :(得分:2)

创建一个跟踪实际关系的表。

您有一个用户表,用户ID。你有一个水果桌,水果ID。

使用user-fruit-relations创建一个表。让它有三个列,id,user_id和fruit_id。

如果用户1跟踪水果2,3和5,请在表格中插入这三行。也就是说,三行的user_id = 1,每行的fruit_id不同。