質問編集履歴

3

(追記)実現したい事のテーブル情報の追加

2021/02/08 14:32

投稿

yumi_1003
yumi_1003

スコア1

test CHANGED
File without changes
test CHANGED
@@ -243,3 +243,63 @@
243
243
  railsを使用しての実装です。
244
244
 
245
245
  DBはMySQLを使用しています。
246
+
247
+
248
+
249
+ ### 追記
250
+
251
+ 中間テーブルを使わない場合はこちらの実装を考えましたが、ご意見いただきたいです。
252
+
253
+ 他のテーブルは上記と同じもので考えていたので省略させていただきました。
254
+
255
+
256
+
257
+ ## menusテーブル
258
+
259
+
260
+
261
+ | Column | Type | Options |
262
+
263
+ | --------- | ---------- | ------------------------------ |
264
+
265
+ | title | string | null: false |
266
+
267
+ | recipe | text | null: false |
268
+
269
+ | hour_id | integer | null: false |
270
+
271
+ | price_id | integer | null: false |
272
+
273
+ | user | references | null: false, foreign_key: true |
274
+
275
+
276
+
277
+ ### Association
278
+
279
+ - belongs_to :user
280
+
281
+ - has_one :foodstuff
282
+
283
+
284
+
285
+ ## foodstuffsテーブル
286
+
287
+
288
+
289
+ | Column | Type | Options |
290
+
291
+ | -------------- | ---------- | ------------------------------ |
292
+
293
+ | foodstuff_name | string | null: false |
294
+
295
+ | quantity | string | null: false |
296
+
297
+ | serving | integer | null: false |
298
+
299
+ | menu | references | null: false, foreign_key: true |
300
+
301
+
302
+
303
+ ### Association
304
+
305
+ - belongs_to :menu

2

リンクの修正

2021/02/08 14:32

投稿

yumi_1003
yumi_1003

スコア1

test CHANGED
File without changes
test CHANGED
@@ -24,17 +24,13 @@
24
24
 
25
25
 
26
26
 
27
- 初期段階ではこのようなテーブル設計で実装していました。↓
28
-
29
- https://gyazo.com/6a9cacff2243195066bc33cd72cba65e
27
+ 初期段階では[こちらのよう](https://gyazo.com/6a9cacff2243195066bc33cd72cba65e)なテーブル設計で実装していました。
30
28
 
31
29
 
32
30
 
33
31
  しかし、一つのForm画面から、二つのテーブルに保存したいので、
34
32
 
35
- Formオブジェクトを使えば良いのでは?と考え、こちらの形に変更いたしました。↓
36
-
37
- https://gyazo.com/88c2c40bf6a6255715710906abde229a
33
+ Formオブジェクトを使えば良いのでは?と考え、[こちら](https://gyazo.com/88c2c40bf6a6255715710906abde229a)の形に変更いたしました。
38
34
 
39
35
 
40
36
 

1

投稿方法・記述の問題修正

2021/02/08 14:24

投稿

yumi_1003
yumi_1003

スコア1

test CHANGED
File without changes
test CHANGED
@@ -6,19 +6,27 @@
6
6
 
7
7
  DB設計において、中間テーブルを使うパターンとFormオブジェクトを使うパターンのどちらがプログラミングでは正しいのか、お詳しい方に助言をいただけたらと思います。
8
8
 
9
+
10
+
11
+
12
+
9
- レシピサイトのコピーサイトを作成しています。
13
+ ###### レシピサイトを作成しています。
10
-
11
-
12
-
14
+
15
+
16
+
13
- - menusテーブル ・・・ レシピの名前、作り方
17
+ - **menusテーブル ・・・ レシピの名前、作り方**
14
-
18
+
15
- - foodstuffsテーブル ・・・ 材料、分量、何人前か
19
+ - **foodstuffsテーブル ・・・ 材料、分量、何人前か**
20
+
21
+
22
+
23
+ ---
16
24
 
17
25
 
18
26
 
19
27
  初期段階ではこのようなテーブル設計で実装していました。↓
20
28
 
21
- ① https://gyazo.com/6a9cacff2243195066bc33cd72cba65e
29
+ https://gyazo.com/6a9cacff2243195066bc33cd72cba65e
22
30
 
23
31
 
24
32
 
@@ -26,9 +34,187 @@
26
34
 
27
35
  Formオブジェクトを使えば良いのでは?と考え、こちらの形に変更いたしました。↓
28
36
 
29
- ② https://gyazo.com/88c2c40bf6a6255715710906abde229a
37
+ https://gyazo.com/88c2c40bf6a6255715710906abde229a
38
+
39
+
40
+
30
-
41
+ CREATE TABLE
42
+
31
-
43
+ ---
44
+
45
+ ## usersテーブル
46
+
47
+ | Column | Type | Options |
48
+
49
+ | ------------------ | ------- | ------------------------- |
50
+
51
+ | nickname | string | null: false |
52
+
53
+ | email | string | null: false, unique: true |
54
+
55
+ | encrypted_password | string | null: false |
56
+
57
+
58
+
59
+ ### Association
60
+
61
+ - has_many :menus
62
+
63
+ - has_many :comments
64
+
65
+
66
+
67
+ ## menusテーブル
68
+
69
+
70
+
71
+ | Column | Type | Options |
72
+
73
+ | --------- | ---------- | ------------------------------ |
74
+
75
+ | title | string | null: false |
76
+
77
+ | recipe | text | null: false |
78
+
79
+ | hour_id | integer | null: false |
80
+
81
+ | price_id | integer | null: false |
82
+
83
+ | user | references | null: false, foreign_key: true |
84
+
85
+
86
+
87
+ ### Association
88
+
89
+ - belongs_to :user
90
+
91
+ - has_one :foodstuff
92
+
93
+ - has_many :menu_tags
94
+
95
+ - has_many :tags, through: menu_tags
96
+
97
+ - has_many :comments
98
+
99
+
100
+
101
+ ## commentsテーブル
102
+
103
+
104
+
105
+ | Column | Type | Options |
106
+
107
+ | -------- | ---------- | ------------------------------ |
108
+
109
+ | comment | string | |
110
+
111
+ | user | references | null: false, foreign_key: true |
112
+
113
+ | menu | references | null: false, foreign_key: true |
114
+
115
+
116
+
117
+ ### Association
118
+
119
+ - belongs_to :user
120
+
121
+ - belongs_to :menu
122
+
123
+
124
+
125
+ ## foodstuffsテーブル
126
+
127
+
128
+
129
+ | Column | Type | Options |
130
+
131
+ | -------------- | ---------- | ------------------------------ |
132
+
133
+ | foodstuff_name | string | null: false |
134
+
135
+ | quantity | string | null: false |
136
+
137
+ | serving | integer | null: false |
138
+
139
+ | menu | references | null: false, foreign_key: true |
140
+
141
+
142
+
143
+ ### Association
144
+
145
+ - belongs_to :menu
146
+
147
+ - has_many :menus, through: foodstuff_menus
148
+
149
+ - has_many :foodstuff_menus
150
+
151
+
152
+
153
+ ## foodstuff_menusテーブル
154
+
155
+
156
+
157
+ | Column | Type | Options |
158
+
159
+ | ----------- | ---------- | ------------------------------ |
160
+
161
+ | foodstuff | references | null: false, foreign_key: true |
162
+
163
+ | menu | references | null: false, foreign_key: true |
164
+
165
+
166
+
167
+ ### Association
168
+
169
+ - belongs_to :foodstuff
170
+
171
+ - belongs_to :menu
172
+
173
+
174
+
175
+ ## menu_tag_relationsテーブル
176
+
177
+
178
+
179
+ | Column | Type | Options |
180
+
181
+ | -------- | ---------- | ------------------------------ |
182
+
183
+ | menu | references | null: false, foreign_key: true |
184
+
185
+ | tag | references | null: false, foreign_key: true |
186
+
187
+
188
+
189
+ ### Association
190
+
191
+ - belongs_to :menu
192
+
193
+ - belongs_to :tag
194
+
195
+
196
+
197
+ ## tagsテーブル
198
+
199
+
200
+
201
+ | Column | Type | Options |
202
+
203
+ | -------- | ------ | ----------- |
204
+
205
+ | name | string | null: false |
206
+
207
+
208
+
209
+ ### Association
210
+
211
+ - has_many :menu_tags
212
+
213
+ - has_many :tags, through: menu_tags
214
+
215
+
216
+
217
+ ---
32
218
 
33
219
 
34
220
 
@@ -59,3 +245,5 @@
59
245
  Ruby 6.0.0
60
246
 
61
247
  railsを使用しての実装です。
248
+
249
+ DBはMySQLを使用しています。