回答編集履歴

2

typo

2023/08/18 03:37

投稿

yambejp
yambejp

スコア115870

test CHANGED
@@ -4,7 +4,7 @@
4
4
  いずれにしても現在は要求定義といってどういう機能がほしいか洗い出しをするタイミングだと思うので、仕様のパターンをあげていき、具体的な素材をサンプリングして仮組みしてみることが肝要です。その段階が一通りおわったら要件定義という具体的にシステムにどう落とし込み、どの機能が必要で、どの仕様はカットするかを決め込む段階に移ります。
5
5
 
6
6
  # 参考
7
- ざっくりこんなテーブル校正が必要になります
7
+ ざっくりこんなテーブル構成が必要になります
8
8
  ```SQL
9
9
  create table cate(
10
10
  cid int primary key,

1

調整

2023/08/18 03:36

投稿

yambejp
yambejp

スコア115870

test CHANGED
@@ -2,3 +2,108 @@
2
2
  そういう場合、「もやしとカニカマの中華風サラダ」に対して「もやし」と「カニカマ」を必須材料とし、「きゅうり」を任意材料とするなどの工夫が必要です。またバリエーション「もやしとカニカマの和風サラダ」や「もやしとカニカマのフレンチ風サラダ」があるなら料理名は「もやしとカニカマのサラダ」などにしてバリエーションを確保したほうがよいです。
3
3
 
4
4
  いずれにしても現在は要求定義といってどういう機能がほしいか洗い出しをするタイミングだと思うので、仕様のパターンをあげていき、具体的な素材をサンプリングして仮組みしてみることが肝要です。その段階が一通りおわったら要件定義という具体的にシステムにどう落とし込み、どの機能が必要で、どの仕様はカットするかを決め込む段階に移ります。
5
+
6
+ # 参考
7
+ ざっくりこんなテーブル校正が必要になります
8
+ ```SQL
9
+ create table cate(
10
+ cid int primary key,
11
+ cname varchar(100));
12
+ insert into cate values
13
+ (3001,'サラダ'),
14
+ (3002,'炒めもの'),
15
+ (3003,'煮物'),
16
+ (3004,'揚げ物'),
17
+ (3005,'副菜');
18
+
19
+ create table genre(
20
+ gid int primary key,
21
+ gname varchar(100));
22
+ insert into genre values
23
+ (4001,'魚'),
24
+ (4002,'肉'),
25
+ (4003,'野菜'),
26
+ (4999,'その他');
27
+
28
+ create table menu(
29
+ mid int primary key,
30
+ cid int null,
31
+ gid int null,
32
+ mname varchar(100),
33
+ foreign key (cid) references cate(cid)
34
+ on update cascade on delete set null,
35
+ foreign key (gid) references genre(gid)
36
+ on update cascade on delete set null
37
+ );
38
+
39
+ insert into menu(mid,cid,gid,mname) values
40
+ (1001,3003,4001,'魚の煮付け'),
41
+ (1002,3001,4003,'ほうれん草とコーンのソテー'),
42
+ (1003,3003,4003,'里芋煮'),
43
+ (1004,3001,4999,'マカロニサラダ'),
44
+ (1005,3002,4003,'八宝菜'),
45
+ (1006,3004,4999,'春巻'),
46
+ (1007,3001,4003,'もやしとかにかまの中華サラダ'),
47
+ (1008,3003,4003,'かぼちゃ煮'),
48
+ (1009,3002,4003,'小松菜炒め'),
49
+ (1010,3005,4003,'しそ昆布');
50
+
51
+ create table ingre(
52
+ iid int primary key,
53
+ iname varchar(100));
54
+ insert into ingre values
55
+ (2001,'魚'),
56
+ (2002,'ほうれん草'),
57
+ (2003,'コーン'),
58
+ (2004,'里芋'),
59
+ (2005,'厚揚げ'),
60
+ (2006,'いんげん'),
61
+ (2007,'マカロニ'),
62
+ (2008,'にんじん'),
63
+ (2009,'きゅうり'),
64
+ (2010,'卵'),
65
+ (2011,'豚肉'),
66
+ (2012,'玉ねぎ'),
67
+ (2013,'ピーマン'),
68
+ (2014,'しいたけ'),
69
+ (2015,'きくらげ'),
70
+ (2016,'白菜'),
71
+ (2017,'春巻き'),
72
+ (2018,'レタス'),
73
+ (2019,'もやし'),
74
+ (2020,'かにかま'),
75
+ (2021,'かぼちゃ'),
76
+ (2022,'丸天'),
77
+ (2023,'小松菜'),
78
+ (2024,'ベーコン'),
79
+ (2025,'しそ昆布');
80
+
81
+ create table menu_ingres(
82
+ miid int primary key auto_increment,
83
+ mid int null,
84
+ iid int null,
85
+ foreign key (mid) references menu(mid)
86
+ on update cascade on delete set null,
87
+ foreign key (iid) references ingre(iid)
88
+ on update cascade on delete set null
89
+ );
90
+
91
+ insert into menu_ingres(mid,iid) values
92
+ (1007,2019),
93
+ (1007,2020),
94
+ (1007,2009);
95
+
96
+ create table daily_menu(
97
+ did int primary key auto_increment,
98
+ d date not null,
99
+ term enum('朝食','昼食','夕食') not null,
100
+ mid int,
101
+ foreign key (mid) references menu(mid)
102
+ on update cascade on delete set null
103
+ );
104
+ insert into daily_menu(d,term,mid) values
105
+ ('2023-03-27','夕食',1005),
106
+ ('2023-03-27','夕食',1006),
107
+ ('2023-03-27','夕食',1007);
108
+ ```
109
+ UIとしてはメニュー追加ボタンを押すとモーダルダイアログが開いて、カテゴリーやジャンルを選んで検索ボタンをおした結果からメニューを選択し、メニューに紐づく材料を、menu_ingreテーブルを利用して抽出します