Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 如何创建动态数据库?_Sqlite_Database Design - Fatal编程技术网

Sqlite 如何创建动态数据库?

Sqlite 如何创建动态数据库?,sqlite,database-design,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 ....

我想创建一个动态数据库

在此基础上,将其作为步骤或流程

如何通过存储查询或任何其他方式创建此数据库

我需要一个程序化的

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

提前感谢大家

我知道您希望使用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;
然后像这样查询:

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数据库

您可能需要“配料”表,该表将保存可用于食谱的任何材料(鸡蛋、面粉、水等)的数据,以及“膳食配料”表,该表将显示膳食中是否应存在某种配料。配方的文本可以保存在deal.recipe字段中

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


最好考虑一下数据库的用途,想从中获取什么样的数据,然后阅读SQL并自己做一些实验。例如,如果你想寻找任何使用面粉的食物,最好将配料放在一张单独的桌子上,与食物相关联——就像一个类别与一顿饭相关联一样,这被称为“多对多关系”。但是,如果您不关心这样的功能,那么可以将菜谱和配料列表都放在dine.recipe字段中。数据库的设计应该反映您的需求和您想要拥有模型的现实部分。

是的,非常感谢您。请再解释一下mysql中的流程!您的问题是专门针对sqlite的。上面的代码是非常通用的sql,可以在mysql中工作,可能需要一些小的调整。您需要查看数据库引擎的教程,并花一点时间在上面,否则您将无法理解它是如何工作的,也无法使用它。请在这项任务上投入一些时间和精力:-)