質問編集履歴

3

こまかな修正

2020/01/21 08:17

投稿

no1knows
no1knows

スコア3365

test CHANGED
File without changes
test CHANGED
@@ -12,15 +12,17 @@
12
12
 
13
13
 
14
14
 
15
- 0. その会社ではじめてザー登録したものが管理者になる。
15
+ 0. その会社ではじめてルアドレスを登録したものが管理者になる。
16
16
 
17
17
  0. 管理者が、会社名と自分の名前を登録する。
18
18
 
19
19
  0. 管理者が、会社名に紐付いた部署名を登録する。
20
20
 
21
- 0. 管理者が、社員へシステム上から招待メールを送信する。
21
+ 0. 管理者が、システム上から社員のメールアドレス登録する。
22
22
 
23
- この時点でそれぞれの社員のUserレコードが作成され、会社名が登録されている。
23
+ この時点で登録した社員のUserレコードが作成され、会社名が登録されている。
24
+
25
+ 0. 管理者が、システムを利用して招待メールを送信する。
24
26
 
25
27
  0. 社員が、招待メールを受信し、リンクをクリックして、登録画面へ遷移する。
26
28
 
@@ -126,7 +128,7 @@
126
128
 
127
129
 
128
130
 
129
- #「データ登録の流れ2.」会社名登録の段階で、部署未定のレコードを作っておく。
131
+ #「データ登録の流れ2.」会社名登録の段階で、部署未定の部署レコードを作っておく。
130
132
 
131
133
  Department
132
134
 
@@ -134,7 +136,7 @@
134
136
 
135
137
 
136
138
 
137
- #「データ登録の流れ4.」招待メールをる際は、事前に作っておいた部署未定のIDを利用する。
139
+ #「データ登録の流れ4.」社員のメールアドレス登録する際は、事前に作っておいた部署未定のIDを利用する。
138
140
 
139
141
  USER
140
142
 

2

追記

2020/01/21 08:17

投稿

no1knows
no1knows

スコア3365

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  0. 管理者が、会社名に紐付いた部署名を登録する。
20
20
 
21
- 0. 管理者が、社員へ招待メールを送信する。
21
+ 0. 管理者が、社員へシステム上から招待メールを送信する。
22
22
 
23
23
  この時点でそれぞれの社員のUserレコードが作成され、会社名が登録されている。
24
24
 

1

説明が不十分だったために質問を大幅に修正させていただきました。

2020/01/21 08:06

投稿

no1knows
no1knows

スコア3365

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- データベース設計について、どのようにすればより望ましいのかアドバイスいただければと思います。
5
+ データベース設計について、下記のデータ登録を踏まえて、どのようにすればより望ましいのかアドバイスいただければと思います。
6
6
 
7
7
  ※個人開発のため仕様書はありません。
8
8
 
@@ -12,39 +12,31 @@
12
12
 
13
13
 
14
14
 
15
- 0. 管理者が、事前会社名に紐付いた部署名を登録する。
15
+ 0. その会社ではじめてユーザー登録したものが管理者にる。
16
16
 
17
+ 0. 管理者が、会社名と自分の名前を登録する。
18
+
19
+ 0. 管理者が、会社名に紐付いた部署名を登録する。
20
+
17
- 0. 管理者が、各会の社員へ招待メールを送信する。
21
+ 0. 管理者が、社員へ招待メールを送信する。
22
+
23
+ この時点でそれぞれの社員のUserレコードが作成され、会社名が登録されている。
18
24
 
19
25
  0. 社員が、招待メールを受信し、リンクをクリックして、登録画面へ遷移する。
20
26
 
21
- 0. 社員は、すでに会社名が登録されており、1.で紐付いた部署名を選択し、名前を入力する。
27
+ 0. 社員は、3.で紐付いた部署名を選択し、自分の名前を入力する。
22
28
 
23
29
 
24
30
 
25
- ### 通常の正規化
31
+ #整理してみる
32
+
33
+ ①**「データ登録の流れ3.」**から、会社名と部署名は、1対多の関係
34
+
35
+ ②**「データ登録の流れ4.」**から、Userレコードは、会社名が登録が必須
26
36
 
27
37
 
28
38
 
29
- これだと「データ登録の流れ」の1.を満たせないので他の方法を検討しました。
30
39
 
31
-
32
-
33
- ```
34
-
35
- Company
36
-
37
- | id | name |
38
-
39
- Department
40
-
41
- | id | name |
42
-
43
- USER
44
-
45
- | id | name | company_id | department_id |
46
-
47
- ```
48
40
 
49
41
  ### 検討したテーブル
50
42
 
@@ -52,13 +44,19 @@
52
44
 
53
45
 
54
46
 
47
+
48
+
49
+ 3つのテーブルを検討しました。
50
+
55
- 3つテーブルを検討しました。Aが検索時なども含めて一番利用しやい印象でしたが、そのような判断基準いのでしょうか?
51
+ Cであれば適切なデータ持ち方でもあるのでのぞまいかと思いますが、空レコードを作るような考え方問題はないのでしょうか?
52
+
53
+
56
54
 
57
55
 
58
56
 
59
57
  ```A
60
58
 
61
- #中間テーブルをもつ。
59
+ #中間テーブルをもつ
62
60
 
63
61
 
64
62
 
@@ -72,9 +70,11 @@
72
70
 
73
71
  USER
74
72
 
75
- | id | name | company_id | department_id |
73
+ | id | name | company_id | department_id | email |
76
74
 
77
75
 
76
+
77
+ #「整理してみる①」を満たすための中間テーブルを準備するが、適切な形じゃない気がする。
78
78
 
79
79
  Company_Department
80
80
 
@@ -100,9 +100,15 @@
100
100
 
101
101
  | id | name | company_id |
102
102
 
103
+
104
+
105
+ #「整理してみる②」を満たすため、ユーザーレコードに会社名のカラムを追加した。結果、会社名に関連したカラムが重複し適切な形じゃない気がする。
106
+
103
107
  USER
104
108
 
105
- | id | name | department_id |
109
+ | id | name | company_id | department_id | email |
110
+
111
+
106
112
 
107
113
  ```
108
114
 
@@ -110,20 +116,40 @@
110
116
 
111
117
  ```C
112
118
 
113
- #検索にくそうな印象がある
119
+ #会社名、部署名、社員の親子関係を表現
114
120
 
115
121
 
116
122
 
117
- Company_Department
123
+ Company
118
124
 
125
+ | id | name |
126
+
127
+
128
+
129
+ #「データ登録の流れ2.」会社名登録の段階で、部署未定のレコードを作っておく。
130
+
131
+ Department
132
+
119
- | id | company_name | department_name |
133
+ | id | name | company_id |
134
+
135
+
136
+
137
+ #「データ登録の流れ4.」招待メールを送る際は、事前に作っておいた部署未定のIDを利用する。
120
138
 
121
139
  USER
122
140
 
123
- | id | name | company_department_id |
141
+ | id | name | department_id | email |
142
+
143
+
124
144
 
125
145
  ```
126
146
 
127
147
 
128
148
 
129
149
  どうぞよろしくおねがいします。
150
+
151
+
152
+
153
+ ---
154
+
155
+ 説明が不十分だったために質問を大幅に修正させていただきました。