Skip to content
This repository was archived by the owner on Apr 5, 2024. It is now read-only.
/ autochef Public archive

Commit 32188ed

Browse files
committed
Database refactoring/simplification
1 parent d1ab04b commit 32188ed

11 files changed

+51
-163
lines changed

dbs/autochef/build.xml

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<project default="create">
22

33
<property file="../../www/autochef/src/main/resources/autochef.properties" />
4-
<property name="jdbc.classpath" value="/usr/share/java/postgresql.jar" />
4+
<property name="jdbc.classpath" value="/usr/share/java/postgresql.jar; /usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar" />
55

66
<target name="clean">
77
<sql
@@ -56,13 +56,9 @@
5656
classpath="${jdbc.classpath}"
5757
url="jdbc:postgresql://${database.hostname}/${database.catalog}"
5858
userid="${database.username}"
59-
password="${database.password}">
60-
<path>
61-
<fileset dir="scripts/data/base-recipes">
62-
<include name="*.sql" />
63-
</fileset>
64-
</path>
65-
</sql>
59+
password="${database.password}"
60+
src="scripts/data/custom-ingredients.sql"
61+
/>
6662
<sql
6763
driver="org.postgresql.Driver"
6864
classpath="${jdbc.classpath}"

dbs/autochef/functions/recipes/fn_randomrecipes.sql

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ create or replace function fn_randomrecipes
55
returns setof tpingredientlink as
66
'
77
select m.ingredientid, t.name as ingredientname
8-
from tbmeals as m
8+
from tbingredients as m
99
join tbingredienttranslations as t on t.ingredientid = m.ingredientid
10-
where t.languageid = languageid
10+
where m.meal
11+
and t.languageid = languageid
1112
order by random()
1213
limit 9;
1314
'

dbs/autochef/functions/recipes/fn_userrecipeingredients.sql

+3-2
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@ begin
5757
insert into _choseningredients (treenodeid, treeparentid, ingredientid, starttime, available)
5858
select r.treenodeid, r.treeparentid, r.ingredientid, r.starttime, 0::bit
5959
from _requiredingredients as r
60-
join tbproducts as p on p.ingredientid = r.ingredientid
61-
where not exists
60+
join tbingredients as p on p.ingredientid = r.ingredientid
61+
where p.product
62+
and not exists
6263
(
6364
select *
6465
from _possibleuseringredients as p

dbs/autochef/functions/recipes/fn_userrecipes.sql

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@ begin
99
return query
1010
select t.ingredientid, t.name
1111
from fn_userpossibleingredients(username) as i
12-
join tbmeals as m on m.ingredientid = i.ingredientid
12+
join tbingredients as m on m.ingredientid = i.ingredientid
1313
join tbingredienttranslations as t on t.ingredientid = i.ingredientid
14-
where t.languageid = ''en'';
14+
where m.meal
15+
and t.languageid = ''en'';
1516
end;
1617
'
1718
language plpgsql;

dbs/autochef/functions/search/fn_searchingredients.sql

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ begin
99
return query
1010
select p.ingredientid, t.name as ingredientname
1111
from tbingredienttranslations as t
12-
join tbproducts as p on p.ingredientid = t.ingredientid
13-
where t.languageid = languageid
12+
join tbingredients as p on p.ingredientid = t.ingredientid
13+
where p.product
14+
and t.languageid = languageid
1415
and t.name ilike textcat(''%'', textcat(searchtext, ''%''))
1516
limit 9;
1617
end

dbs/autochef/functions/search/fn_searchrecipes.sql

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ begin
99
return query
1010
select m.ingredientid, t.name as ingredientname
1111
from tbingredienttranslations as t
12-
join tbmeals as m on m.ingredientid = t.ingredientid
13-
where t.languageid = languageid
12+
join tbingredients as m on m.ingredientid = t.ingredientid
13+
where m.meal
14+
and t.languageid = languageid
1415
and t.name ilike textcat(''%'', textcat(searchtext, ''%''))
1516
limit 9;
1617
end

dbs/autochef/scripts/create.sql

+8-27
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ create table tbingredients
44
(
55
ingredientid serial,
66

7+
product boolean not null default ('false'::boolean),
8+
meal boolean not null default ('false'::boolean),
9+
710
duration interval not null,
811

912
primary key (ingredientid)
1013
);
1114

15+
-- Deprecated
1216
create table tbingredientdependencies
1317
(
1418
parentid int references tbingredients (ingredientid),
@@ -18,29 +22,17 @@ create table tbingredientdependencies
1822
);
1923
create index ixingredientparents on tbingredientdependencies (childid, parentid);
2024

21-
create table tblanguages
22-
(
23-
languageid char(2),
24-
25-
primary key (languageid)
26-
);
27-
25+
-- Deprecated
2826
create table tbingredienttranslations
2927
(
3028
ingredientid int references tbingredients (ingredientid),
31-
languageid char(2) references tblanguages (languageid),
29+
languageid char(2),
3230

3331
name text not null,
3432
instructions text not null,
3533

36-
primary key (ingredientid, languageid)
37-
);
38-
39-
create table tbmeals
40-
(
41-
ingredientid int references tbingredients (ingredientid),
42-
43-
primary key (ingredientid)
34+
primary key (ingredientid, languageid),
35+
unique (languageid, name)
4436
);
4537

4638
create table tbsuppliers
@@ -50,14 +42,6 @@ create table tbsuppliers
5042
primary key (supplierid)
5143
);
5244

53-
create table tbproducts
54-
(
55-
ingredientid int references tbingredients (ingredientid),
56-
supplierid char(4) references tbsuppliers (supplierid),
57-
58-
primary key (ingredientid, supplierid)
59-
);
60-
6145
create table tbusers
6246
(
6347
username text,
@@ -118,6 +102,3 @@ create type tprecipeingredient as
118102
starttime interval,
119103
available bit
120104
);
121-
122-
-- Languages
123-
insert into tblanguages (languageid) values ('en');

dbs/autochef/scripts/data/base-recipes/beef-burritos.sql

-18
This file was deleted.

dbs/autochef/scripts/data/base-recipes/beef-stew.sql

-10
This file was deleted.

dbs/autochef/scripts/data/base-recipes/spaghetti-bolognese.sql

-90
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Fresh Parsley', '';
2+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Fresh Coriander', '';
3+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Ground Black Pepper', '';
4+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Extra Virgin Olive Oil', '';
5+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Smoked Paprika', '';
6+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Thai Sweet Chilli Sauce', '';
7+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Soy Sauce', '';
8+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Fresh Ginger', '';
9+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Marmite', '';
10+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Dijon Mustard', '';
11+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Tomato Paste', '';
12+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Tin of Tomatoes', '';
13+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Basmati Rice', '';
14+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Can of Tuna', '';
15+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Curry Sauce', '';
16+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Curry Paste', '';
17+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Tabasco Sauce', '';
18+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Plain Yoghurt', '';
19+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Instant Mashed Potato', '';
20+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Instant Noodles', '';
21+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Plain Flour', '';
22+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Red Wine', '';
23+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'White Wine', '';
24+
insert into tbingredients (duration) select '0'::interval; insert into tbingredienttranslations (ingredientid, languageid, name, instructions) select currval('tbingredients_ingredientid_seq'), 'en', 'Fine Sea Salt', '';

0 commit comments

Comments
 (0)