2011-01-14 54 views
1

我很難找出存儲用戶想要查看的信息的最佳方法。我很抱歉無法找到一個簡單的方法來解釋我的問題,但在這裏(水果是例如):在PHP中使用PHP存儲用戶選擇的有效方法?

假設我的用戶有一個選項,以跟蹤他們的冰箱中的以下水果:

蘋果,桔子,葡萄,梨

該數據庫是已經建立與被叫 '水果' 表中,其中蘋果是id_fruit = 1,橙子是id_fruit = 2,等等。

就像我說所有用戶都有選擇來跟蹤這些水果,但是...我目前無法找出一個簡單的方法來存儲用戶的選擇他們想跟蹤哪些水果。如果用戶1不喜歡蘋果,他可以進入他的設置,取消選中蘋果,並且不再在他的儀表板中顯示蘋果。

我能想到存儲此信息的唯一方法是創建一個表,其中包含字段user_id,蘋果,橙,葡萄,梨。然後存儲user_id和Yes/No或0/1的水果。

如果我想添加更多的水果或其他東西,會導致嚴重的痛苦。

什麼是使用PHP將這些信息存儲在MySQL中的最佳方式。我將如何檢索該信息。

用戶登錄後,檢查他想要查看哪些水果的數據庫,並只顯示他選擇的水果。

任何幫助將不勝感激。

回答

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

哦哇,我想我應該拔出一個初學者的PHP書。非常感謝:) – 2011-01-14 07:38:40

2

創建一個跟蹤實際關係的表格。

您有一個用戶表,其中包含用戶標識。你有一個水果桌,水果ID。

用user-fruit-relations創建一張表。讓它有三個colums,id,user_id和fruit_id。

如果用戶1跟蹤水果2,3和5,請在表格中插入這三行。也就是說,有三行user_id = 1和每行不同的fruit_id。