2017-07-15 8 views
-1

私のウェブサイトにログイン/登録オプションを追加したいと思います。ユーザのデータのための私のデータベース設計とは何でしょうか。

ので、このために、私が保存したい:UsernamePasswordemailfirst namemiddle namelast name、ユーザーのwatchlist映画の、およびrating

これがわからない私が作ることを計画していますデザインは、(そこにあります、あなたはnormalizationとしてこれを呼び出す、またはそれが何か他のもの)であれば

表:userinfo

user_id username password email    first name 

1   fsdfs  4r34fdf [email protected]   josh 
2   dfdsf  e4rewff  [email protected]   roy 

表:userwatchlist:

user_id  watchlist 
1   Logan 
1   Ironman 
1   Ironman 2 
1   Ironman 3 
2   Superman 
2   The boy 

表:

user_id  rating  movie_id 
    1   5.6    435 
    1   6.9    3423 
    1   5.8    3243 
    1   9.4    2334 
    2   7.8    6345 
    2   8.3    4343 

をuser_rating私は、外部キーとしてuser_idを使用して、すべてのテーブルを接続します。

答えて

1

パスワードを保存しないでください。彼らの塩漬けのハッシュを保管してください。私が代わりに `movie_id`の` movie_name`を置く場合
よりよい設計が

users table 
----------- 
id 
username 
pass_hash 
... 


movies table 
------------ 
id 
title 
... 


watchlist table 
--------------- 
user_id 
movie_id 

user_ratingsテーブルだろうが

+0

結構ですブロは、ウォッチリストで、それは実行速度が遅くなりますか? (データの取得中)??? – Toby

+0

私はあなたの仲間ではありません。それ以外に、ウォッチリストのテーブルに冗長なデータを保存する理由は何ですか? IDだけを保存する方がクリーンです。映画のタイトルのスペルを間違えた場合はどうなりますか?複数のテーブルでそれを修正する必要があります。 –

+0

すみません。実際には、別のテーブルがあります。movie_idではなくMovie_nameで結果を保存しました。テーブルが完成します。私はあなたのアドバイスに私のテーブルの構造を変更する必要がありますか?それともそれを保つ?私は自分のフェッチスピードを向上させたい、スピードに影響するだろうか? – Toby

関連する問題