2016-10-20 24 views
0

私はこの従業員評価Webページを設計しており、現在のデータベース設計が正しいかどうか、または改善できるかどうか疑問に思っていました。評価用のSQL Serverデータベース設計

これは私の現在の設計

アジェンダさ:

+--------------+----------+----------+-----------+------+-------+-------+ 
| idEvaluation | Location | Employee | #Employee | Date | Date1 | Date2 | 
+--------------+----------+----------+-----------+------+-------+-------+ 

Dateは、実行される評価用予定日です。

日付1と日付2別のデータベースから一部のメトリックを取得する期間。

評価

+--------------+---------+------------+------+----------+ 
| idEvaluation | Manager | Department | Date | Comments | 
+--------------+---------+------------+------+----------+ 

スコア:私はそれこれが正しい前記のよう

+--------------+----------+-------+ 
| idEvaluation | idFactor | Score | 
+--------------+----------+-------+ 

idFactorは、因子との記述を含む別のテーブルにも関します設計??

Agenda Tableに評価ごとにその1つのレコードのみ(60以来の多くの問題はありませんので、私の関心のこの、現在は60人の従業員、11人のマネージャーと12個の要素、各従業員がありますが、その、すべての管理者が年二回、評価従業員= 60レコード)、どのようにEvaluations Tableにすべての評価のための11のレコードがあるので、それは660レコード(従業員11人のマネージャー= 660)に行くと、Scores Table評価ごとに12要因、それは7920レコード(660評価* 12要因それぞれ= 7920)になります。

これは正常ですか?私はそれを間違っているのですか?すべての入力はそれを感謝します。

EDIT

場所従業員、#Employee、マネージャーや部門がvb.netページによって自動的にロードされ、それらは「輸入」されている挿入前にチェックActive Directoryとそのからその名が重複し、名前をスペルミスこの種のものは問題ではありません。

+4

7,920レコードは、適切な管理が行われている場合、SQLサーバーが処理できる水のトラック負荷が低下しただけです。これらをさらに踏襲し、従業員、部署、所在地、マネージャーのテーブルを別々にして、それらの名前を複製しないようにする必要があります。あなたは基本的にこれらのテーブルのほとんどにIDの束を持っています。 –

+0

@ C employee私は従業員、所在地、デパートメントのテーブルについて考えましたが、マネージャーについては、名前をIDに変更するのが本当に改善されますか?その主な理由は、従業員の管理者よりも評価を実現した人を識別するためです。 – abichango

+0

マネージャーはおそらく、別の従業員レコードのIDになります。それを元のリストから取り除く。 –

答えて

1

主なアイデアは、あなたが代わりにあなただけのものも速く得るので、小さい1を使用し、繰り返しSales多くの時間の

id Department 
    1 Sales 
    2 IT 
    3 Admin 

を持っている場合、文字列リテラル

を繰り返したいいけないです。あなたはユーザー

id user 
    1 Jhon Alexander 
    2 Maria Jhonson 

を持っている場合Jhonは彼の名前を変更することを決定した場合

第二に、あなたはすべてのテーブルをチェックし、名前を変更する必要があります。また、2人の人が同じ名前を持っていて、どちらが評価しているのかわからない場合は、問題があります。

分離されたテーブルに行き、IDを使用してください。

+0

私は今、繰り返しの文字の回避を参照して、2番目の部分については、私はちょうどそれを明確にするために私の質問を編集し、私はそれらのために別のテーブルを使用します。 – abichango

+0

私は物事が変わると言うと、部門変更名、部署からのPPLの移動も同じです。単なるベストプラクティスです。正規化dbを学ぶ必要があります。しかし、もしあなたの質問がサイズに関するものであれば、Coryは8000が何もないと言っているので、毎日100万人と普通の人間を挿入し、アマゾンのようなものは挿入しない。 –

+0

しかし私の場合、私の場合は、部署の変更、例えば、アクティブディレクトリのIT部門が更新したもの(少なくともそれがそうであると思われる)を変更してから、将来のすべてのレコードに新しい部門や属性が変更され、以前のレコードは同じままでなければなりません。しかし、アドバイスをいただきありがとうございます。間違いなく、ノーマライズdbについて詳しく見ていきます。ありがとう! – abichango

関連する問題