2012-03-07 7 views
0

私は、従業員が完了した作業を記録するために使用するウェブサイトを構築しています。このサイトには、情報を送信するページ、情報を表示するページ、名前、電子メール、電話などの従業員の個人情報を含むページが含まれています。認証にはASP.NETメンバーシップを使用しています。すべてのコードはVBになります。私の質問:私のASP.NETウェブサイトでデータベースを使用するためのベストプラクティスに関する助言が必要です

1)ASP.NETメンバーシップは、メンバーのユーザー名と電子メールのみを格納します。私は名字、電話番号などの追加情報を保存したいと思います。メンバーシップデータベースのテーブルを更新してこの情報を含めることはできますか?または、この情報を別のデータベースに保存する必要がありますか?私の目標は、現在ログインしているユーザーに固有のデータをページのテキストボックスに入力することです。

2)完了した作業は、メンバーシップデータ。ログインし、メンバーデータベースに対して認証されたユーザーに固有のこの個別の「作業」データベースからレコードを取得して表示する最も効率的な方法は何ですか?

3)私は "仕事"データベースのテーブルの設計に問題があります。データベースに格納されている各レコードは、日々の作業を表します。しかし、その日には多くの活動が行われます。各アクティビティには、アクティビティ、場所、および作業時間のタイプがあります。従業員は1つの活動または100の活動を完了することができる。私は、アクティビティのためだけにテーブルが必要と思って、それをワークテーブルに関連付けます。これは正しいのですか?

+0

[Profile provider](http://msdn.microsoft.com/en-us/library/2y3fs9xs(v = vs.100).aspx)を使用して、画像、電話番号、名/姓など –

答えて

1

あなたの最初のポイントについては、独自のユーザーテーブルを作成し、このテーブルをguid vizのメンバーシップユーザーテーブルと関連付けることをお勧めします。あなたのテーブルのuseridファイルを保持し、それをメンバーシップテーブルと関連付けます。

第二のポイントは、自動的にあなたがあなた自身のユーザテーブルを作成します一度解いてしまいます、あなたが必要とするすべては、そして最後に、あなたがしている場合、作業

からレコードを取得するために、仕事と(自分で作成した)ユーザーテーブルを関連付けることですアクティビティ用の新しいテーブルを作成する方法をどのようにしてワークテーブルに関連付けるのか、レコード用に複数のオカレンスを持たせる代わりに、新しいテーブルを作成する場合と同様に作業テーブル自体にアクティビティ用の別のテーブルを作成しないことをお勧めします冗長性をもたらす作業との関係を提供する必要があります。

これが役に立ちます。

+0

こんにちは、返信いただきありがとうございます!各ユーザーごとに、1日に1つのエントリが作業表に表示されます。 (作業項目は基本的に日報です)各作業項目ごとに、不確定な数の活動が完了しています。 (1〜100個の異なるアクティビティがあり、ユーザーが作成した説明があります)アクティビティの数がわからないので、ワークテーブルに追加する列の数はわかりません。可能な限り多くのアクティビティをカバーするために、作業テーブルに十分な列を追加する必要があります。これは不明です。これはちょうど私にとって非効率的な/余分なようです。 – sevenyearsrust

+0

なぜ私は、アクティビティのためだけにテーブルを作成し、ワークテーブルと1対多の関係を持つことを考えていたのですか。このようにして、私のテーブル構造はきれいでシンプルになり、活動の数を推測/過大補給することはありませんでした。アクティビティは、必要に応じてテーブルに挿入されます。 – sevenyearsrust

+0

このような場合は、別のテーブルを持つ方がよいでしょう。しかし、仕事や活動との関係が意味をなさない場合は、テーブルを1つしか持たないほうがよいでしょう。 –

関連する問題