2017-10-21 97 views
1

我正在研究一個小型的Android應用程序,它將允許用戶創建一個帳戶,查看和評分顯示的地點,並保存待觀看的地點(這就是爲什麼我讓他們創建一個帳戶)。我正在使用SQLite數據庫,並想知道我的用戶表和位置/位置表之間的關係是什麼。我最初的想法是與作爲交叉表的評分表進行多對多的關係。例如,評級表將存儲用戶和地點的ID,但也有其自己的評級ID。用戶表,評分表和位置表之間的關係是什麼?

+0

因此應用程序將只有一個用戶?或者有多少?如果應用程序將有許多用戶,那麼這種關係將是多對多的,然後您應該創建第三個表來保存位置和用戶的外鍵。 –

+0

@ArisPanayiotou該應用將有許多用戶。該應用程序的全部目的是爲人們提供評價不同地點的機會,並需要這麼多的用戶。我喜歡有一個用戶帳戶的人的想法,這將允許我爲應用程序的每個用戶保存位置。 –

回答

0

這裏是什麼,我覺得應該是你的數據庫設計ER表示:

ER diagram

我還添加了一些額外的信息UserRating使ER圖更逼真......

根據這種設計,你的桌子應該是這樣的:

  • 用戶ID歲) - >ID
  • 廣場ID) - >ID
  • 評分User_idPlace_id時間日期) - >USER_IDPlace_id
  • 保存USER_IDPlace_id時間,日期) - >USER_IDPlace_id
  • :因爲Rating是一個弱實體(它依賴無論在用戶和地點),我們可以從Rates關係提取它,因爲就沒有Rating沒有UserPlace涉及它。

希望你覺得它有幫助。

+0

我對保存表的想法有些困惑。爲什麼需要存儲費率?我可能沒有足夠清楚地解釋它,但想法是給用戶一個標記某些位置的機會。這些位置將在一個單獨的區域中可見,以便用戶不必再次找到它們。我需要一個單獨的表格嗎?或者這可能是用戶表格中的一個字段? –

+0

你不能這樣做...讓我們假設你的用戶表有一個名爲「Places To Watch」的字段,它存儲了每個用戶想要訪問的地點ID ...現在,如果某個用戶想要訪問2個或更多的地方,你不能添加它們到你的桌子因爲你最終會得到重複的ID ...我希望你明白我的意思... btw對不起我的可憐的英語 –

+0

這是完全有道理的。評論不應該是爲了表示謝意,而是感謝您的時間和幫助! –

0

的表應該像
User-> Id,Name,Username,Password
Ratings-> Id,User_id,Location_id,Rating
Location->Id,Name
SavedLocations->Id,User_id,Location_id


相關問題