我无法找出存储用户想要查看的信息的最佳方式。我为无法找到一个简单的方法来解释我的问题而道歉,但是这里(例如,水果是为了这个):
假设我的用户可以选择跟踪冰箱中的以下水果:
苹果,橘子,葡萄,梨
数据库已经设置了一个名为'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中存储此信息的最佳方法是什么?我将如何检索该信息。
用户登录,查看他想要查看水果的数据库,并只显示他选择的水果。
非常感谢任何帮助。
答案 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不同。