我目前正在開發一個讓用戶探索地點和計劃旅行的城市旅行指南應用程序。需要關於設計數據庫的幫助
在帳戶模塊,下面功能將被認爲是:
用戶可以通過提供主電子郵件地址和密碼進行註冊。
註冊用戶可以添加他們的個人詳細信息,如他們可以添加全名,輔助電子郵件,國家和城市。
用戶可以設置自己的個人資料,如他們可以添加個人資料圖片,顯示的名字,他們已經走訪等地方
當他們打開自己的/其他的個人資料,他們的個人資料信息(如照片和顯示名稱)和像他們的'旅行'計數,'喜歡'計數,'評論'計數等統計數據將被顯示。
我設計帳戶模塊數據庫表如下:
1. User_Account_details(user_id, primary_email, secondary_email, password)
2. User_Personal_details(user_id, first_name, last_name, country, city)
3. User_Profile(user_id, profile_picture, display_name)
4. User_Statistics(user_id, trips_count, likes_count, reviews_count)
有3代表的城市和國家,這樣,當用戶添加國家,然後應用程序從數據庫,並根據檢索城市顯示在城市文本框的建議中。
1. country(country_id, country_name)
2. city(city_id, city_name)
3. country_city_association(country_id, city_id)
任何人都可以告訴我,如果我的表中有什麼遺漏嗎?或者表格是否正常化?或者如果他們缺少適當的關係等?我是數據庫設計的新手。 plz幫助。
正如您所說:「user_statistics表將阻止數據庫實現第三範式:通過查詢其他表可以檢索此表中的所有數據。」遐,但它不會佔用更多時間嗎?因爲多表查找必須完成? – xyz 2014-10-29 08:57:07
@xyz:可能需要更少的時間來執行查詢,如'select user_id,count(*)from visitor group by user_id',那麼它會在每次事件發生時更新您的統計信息表。保持此表同步,您也會遇到問題。你永遠不應該(或者至少,很少)在表格中保留總計列。 – 2014-10-29 11:19:55