[英]Which of these two approaches is better for organizing and querying data from a mysql?
我試圖決定如何實施,希望您的經驗對我有所幫助。
用戶使用facebook api登錄到webapp,這給了我很多數據,名稱,facebook id(我使用該數字來標識我的網站中的用戶),年齡以及我需要存儲以供以后使用的其他一些隨機數據分析。 之后,用戶可以索取票證(只是一段文本,其中包含一個在php腳本中生成的數字),當票證生成時,我存儲了用戶facebook id,日期(MM / DD / YYYY),當然還有票證的唯一ID,同一用戶可以要求幾張票證。
要有兩個表,一個叫users
,我在其中存儲所有用戶個人信息,從Facebook api檢索到,包括Facebook用戶ID。 第二個表稱為“ Tickets
,其中僅存儲票證的創建日期和創建票證的用戶的Facebook用戶ID,當然,此表具有自動遞增的唯一ID,以標識票證本身。
將來,我將需要顯示所有創建票證的用戶的列表,不僅顯示其Facebook用戶ID,而且還顯示其個人信息,因此這意味着我需要查詢tickets
以及針對使用的每行/票證我需要查詢users
的Facebook ID來檢索該users
的個人信息(姓名,年齡,...)。 因此,如果我有10000個唯一身份用戶創建的10000張票證,則需要查詢Mysql服務器10001,一個用於檢索票證數組,一個用於檢索每個用戶的信息10000 ...
有兩個表,只有一個表,我在其中存儲所有內容,票據和用戶數據,因此,當用戶創建票據時,我不僅將與票據相關的信息存儲在同一表中,還將用戶個人數據存儲在同一表中,如果以后我想顯示誰創造了票我只是要做一個單一查詢用戶的列表tickets
將eventualy retrive(如果我有10000票)數據的大包,我以后將解析使用PHP。 這樣,我的查詢更少,但是數據更大。
現在,我已經運行了第一個解決方案的基本功能,但是現在我有點擔心可伸縮性問題。
這是我的users
表的一部分的外觀:
這是tickets
表:
因此,要列出用戶,我會這樣進行: 來自tickets
discount_id
代表tickets
一種類型,因此如果需要類型1
我可以查詢*票證winner_id
= 1,從數組中它使用winner_id
(票證創建者的Facebook用戶ID)給我,我將其winner_id
從users
獲取face_id
以檢索個人信息。
我想用第三種方式解決這個問題,就是將1和2相結合,並具有相同的兩個表,在我查詢所需類型的tickets
之后,然后查詢(僅一個)表users
要求一個數組所有的用戶ID tickets
都給了我,但是我不知道該怎么做以及是否值得。
哪種解決方案更好? 有什么明智的方式進行嗎? 謝謝!
就像評論definitley時一樣,可以分解表結構。 它使生活更輕松,因此使用第一個版本。 許多事情只有通過許多表才有可能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.