如何创建动态数据库?

时间:2014-11-08 13:56:37

标签: sqlite database-design

我想创建一个动态数据库

在此基础上需要作为步骤或流程..

如何通过商店查询或任何其他方式创建数据库。

我想以编程方式需要。

1)健康食谱类别表

   1)BreakFast
   2)Lunch
   3)Dinner
   4)chicken & turkey
   5)Dessert 
   ...........

2)早餐桌....

 - orange and vanilla protein oatmeal

 -chili-chocolote protein oatmeal
 .....

3) - 橙子和香草蛋白燕麦片

  -Ingredients
  -directions

先谢谢你...

1 个答案:

答案 0 :(得分:1)

我知道你想使用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_ingredient"这将告诉我们一餐中是否含有一种成分。配方文本可以保存在meal.recipe字段中。

请注意,设计数据库的方法有很多种,通常您应该提供系统的详细规范,以便使用数据库进行良好的设计。

如果你认为数据库将用于什么,你想从中获得什么样的数据然后阅读SQL并自己做一些实验,那就最好了。例如,如果您希望能够寻找任何使用面粉的餐点,最好将食材放在单独的餐桌上,与餐点相关联 - 就像一个类别与餐点相关,它就是' s称为"多对多的关系"。但是如果你不关心这样的功能,可以将食谱和成分列表放在meal.recipe字段中。数据库的设计应该反映您的需求以及您希望拥有模型的现实部分。