我明白你想使用SQLite。運行SQLite的客戶端(Sqliteman或類似),創建一個新的數據庫,並運行下面的腳本:
create table category (
category_id integer not null primary key,
name varchar(80) not null
);
create table meal (
meal_id integer not null primary key,
name varchar(80) not null,
directions text
);
create table meal_category (
meal_category_id integer primary key,
meal_id integer not null references meal,
category_id integer not null references category
);
然後,您可以插入數據是這樣的:
insert into category (category_id, name) values (1, 'Breakfast');
insert into category (category_id, name) values (2, 'Lunch');
insert into meal (meal_id, name) values (1, 'Orange and vanilla protein oatmeal');
insert into meal (meal_id, name) values (2, 'Chili-chocolote protein oatmeal');
insert into meal_category (meal_category_id, meal_id, category_id) values (1, 1, 1); -- meal 1 is a breakfast
insert into meal_category (meal_category_id, meal_id, category_id) values (2, 2, 1); -- meal 2 is a breakfast
和查詢它像這樣:
select m.name || ' is ' || c.name from meal m
join meal_category mc on m.meal_id = mc.meal_id
join category c on mc.category_id = c.category_id;
這是最簡單的設計。你可能想要添加額外的字段和一些索引 - 請檢查關於SQL的教程如何做到這一點。無論如何,以上將給你一個工作的SQLite數據庫。
您可能需要桌子上的「成分」,它可以保存任何可用於配方(蛋,麪粉,水等)的數據和「膳食成分」,它會告訴您膳食中是否應有成分。配方文本可以保存在meal.recipe字段中。
請注意,有不同的方法來設計一個數據庫,通常你應該提供一個詳細的系統規範,它將使用數據庫來有一個好的設計。
如果您認爲數據庫將用於什麼樣的數據,您希望從中獲取什麼樣的數據,然後在SQL上讀取並自行進行一些實驗,那麼最好。例如,如果您想要查找任何使用麪粉的餐點,最好將食材放在單獨的餐桌上,並與餐點相關聯 - 就像一個類別與餐點相關聯,這就是所謂的「多對多關係」。但是,如果你不關心這樣的功能,食譜和配料列表可以放在meal.recipe字段中。數據庫的設計應該反映出你的需求以及你想要建立模型的現實部分。
是的非常感謝。 – Ghanshyam 2014-11-10 09:01:37
也請在mysql中說明一下流程! – Ghanshyam 2014-11-10 09:02:57
你的問題是專門針對sqlite的。上面的代碼是相當普遍的sql,並可以在mysql中工作,也許有一些小調音。你需要檢查數據庫引擎的教程,花一點時間在他們身上,否則你不會理解它是如何工作的,並且不能使用它。請把你的一些時間和精力投入到這項工作中:-) – BartoszGo 2014-11-10 12:00:41