知りたいこと
データベース設計について、下記のデータ登録を踏まえて、どのようにすればより望ましいのかアドバイスいただければと思います。
※個人開発のため仕様書はありません。
データ登録の流れ
- その会社ではじめてメールアドレスを登録したものが管理者になる。
- 管理者が、会社名と自分の名前を登録する。
- 管理者が、会社名に紐付いた部署名を登録する。
- 管理者が、システム上から社員のメールアドレスを登録する。
⇒この時点で登録した社員のUserレコードが作成され、会社名が登録されている。
0. 管理者が、システムを利用して招待メールを送信する。
0. 社員が、招待メールを受信し、リンクをクリックして、登録画面へ遷移する。
0. 社員は、3.で紐付いた部署名を選択し、自分の名前を入力する。
#整理してみる
①**「データ登録の流れ3.」から、会社名と部署名は、1対多の関係
②「データ登録の流れ4.」**から、Userレコードは、会社名が登録が必須
検討したテーブル
3つのテーブルを検討しました。
Cであれば適切なデータの持ち方でもあるのでのぞましいかと思いますが、空レコードを作るような考え方で問題はないのでしょうか?
A
1#中間テーブルをもつ形。 2 3Company 4| id | name | 5Department 6| id | name | 7USER 8| id | name | company_id | department_id | email | 9 10#「整理してみる①」を満たすための中間テーブルを準備するが、適切な形じゃない気がする。 11Company_Department 12| company_id | department_id | 13
B
1#会社名、部署名、社員の親子関係を表現した形 2 3Company 4| id | name | 5Department 6| id | name | company_id | 7 8#「整理してみる②」を満たすため、ユーザーレコードに会社名のカラムを追加した。結果、会社名に関連したカラムが重複し適切な形じゃない気がする。 9USER 10| id | name | company_id | department_id | email | 11
C
1#会社名、部署名、社員の親子関係を表現した形 2 3Company 4| id | name | 5 6#「データ登録の流れ2.」会社名登録の段階で、部署名未定の部署レコードを作っておく。 7Department 8| id | name | company_id | 9 10#「データ登録の流れ4.」社員のメールアドレスを登録する際は、事前に作っておいた部署未定のIDを利用する。 11USER 12| id | name | department_id | email | 13
どうぞよろしくおねがいします。
説明が不十分だったために質問を大幅に修正させていただきました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/20 21:52
2020/01/21 00:29
2020/01/21 08:28