[英]MySQL table. Should I use a cross-reference table?
我正在根據網站所屬城市顯示MySQL的數據輸出。 因此,我的兩個表稱為login_users
和city_selection
。 所有表都有一個名為city_id
的列。
當用戶登錄我的網站時,我問數據庫設置了什么city_id,然后創建一個$_SESSION['city_id']
然后,我可以將帶有WHERE
MySQL查詢寫入$_SESSION['city_id']
。
例如: SELECT firstname, lastname, city_name FROM students JOIN city_selection ON city_selection.city_id = students.city_id WHERE city_selection.city_id = '{$_SESSION['city_id']}'
這可行,但是現在我需要一些用戶來顯示一個或多個城市區域。 我的第一個想法是創建一個名為region_selection
的新表,並從表city_selection
表中添加一個外鍵。 但是,我應該如何處理應該向登錄用戶顯示來自一個或多個區域的數據輸出的情況? 我應該創建某種交叉引用表嗎?
這是我第一次使用PHP-MySQL網站,請耐心等待!
如果每個城市僅屬於一個地區,則可以使用region_id | region_name
column列創建您的region_selection
表region_id | region_name
region_id | region_name
。 然后,將region_id
列添加到city_selection
表,該表定義城市所屬的區域。
然后,您可以執行如下查詢以獲取屬於某個區域的學生:
SELECT firstname, lastname, city_name FROM students
JOIN city_selection ON city_selection.city_id = students.city_id
JOIN region_selection ON region_selection.region_id = city_selection.region_id
WHERE region_selection.region_name = YOUR_REGION_NAME
如果用戶屬於多個區域,則可以執行以下操作:如上所示創建表region_selection
。 然后,創建帶有列student_id | region_id
的表student_regions
student_id | region_id
在學生和區域之間建立鏈接。
查詢如下所示:
SELECT firstname, lastname, city_name FROM students
JOIN student_regions ON student_regions.student_id = students.student_id
JOIN region_selection ON region_selection.region_id = student_regions.region_id
WHERE region_selection.region_name = YOUR_REGION_NAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.