Php 如何在SQL上显示表的名称
首先,我来自西班牙,如果我在写作中犯了一些错误,我很抱歉。所以,我有两个问题。如果我能在这之前给出上下文,那会更好。我甚至还不小,仍在学习代码,我认为创建一个网页,在其中可以添加配料、含有这些配料的食物等,这将是一个很好的项目。所以我决定开始学习PHP和SQL。现在我正试图创建一个数据库,从一些配料和两种大米开始。我的第一个问题是,我不知道是否需要为此创建数据库。第二个也是最主要的一个是,我不知道如何让它按我想要的方式工作 看,首先我创建了配料表Php 如何在SQL上显示表的名称,php,sql,database,Php,Sql,Database,首先,我来自西班牙,如果我在写作中犯了一些错误,我很抱歉。所以,我有两个问题。如果我能在这之前给出上下文,那会更好。我甚至还不小,仍在学习代码,我认为创建一个网页,在其中可以添加配料、含有这些配料的食物等,这将是一个很好的项目。所以我决定开始学习PHP和SQL。现在我正试图创建一个数据库,从一些配料和两种大米开始。我的第一个问题是,我不知道是否需要为此创建数据库。第二个也是最主要的一个是,我不知道如何让它按我想要的方式工作 看,首先我创建了配料表 CREATE TABLE ingrediente
CREATE TABLE ingredientes(
id int(255) auto_increment not null,
ingrediente varchar(255) not null,
CONSTRAINT pk_ingredientes PRIMARY KEY(id) )ENGINE=InnoDb;
抱歉,因为它是西班牙语的:/,但没什么难懂的。
所以我加了一些配料。
之后,我创建了两个表,并添加了配料
CREATE TABLE arroz_con_pollo(
id int(255) auto_increment not null,
ingrediente int(255) not null,
CONSTRAINT pk_arroz_con_pollo PRIMARY KEY(id),
CONSTRAINT fk_pollo_ingredientes FOREIGN KEY(ingrediente) REFERENCES ingredientes(id) )ENGINE=InnoDb;
这是显示身份证的照片
所以现在我花了很多时间研究,发现我可以使用这个命令显示名称
SELECT a.id,i.ingrediente
FROM ingredientes i, arroz_cubana a
WHERE i.id = a.id;
吃点类似的东西
在这一点上,一切或多或少都在起作用。当我想创建一个数据库,将所有名称(arroz con pollo,arroz cubana…)保存在一个名为“rices”的表中,以便能够选择一个名称,并自动将配料放在那里,而不会给用户带来任何麻烦时,我的问题就来了。但是,我真的不知道。我已经写了好几个小时了,在这方面没有任何胜利。我在网上还没有看到任何类似的东西,所以,如果有人告诉我如何解决这个问题,或者如何建立一个网络来保存配料和食物,我会非常感激的。这篇评论太长了 你的数据结构乱七八糟。SQL并不是为每个成分设计一个单独的表。相反,您需要另外两张桌子 第一个是菜肴: 制作餐具( 碟形id自动增量不为空, 名称varchar(255) ); 然后将适当的行插入到以下内容中:
INSERT INTO dishes (name)
VALUES ('arroz_on_pollo');
然后,您有另一张配料表:
CREATE TABLE dishes_ingredients (
dish_ingredient_id int auto_increment primary key,
dish_id int not null
ingredient_id int not null,
CONSTRAINT fk_dish_ingredientes_dish FOREIGN KEY(dish_id) REFERENCES dishes(dish_id)
CONSTRAINT fk_dish_ingredientes_dish FOREIGN KEY(ingredient_id) REFERENCES ingredientes(ingredient_id)
);
瞧!新的菜肴只是表格中的一行,因此您可以使用选择来获取名称
结构说明:
int(255)
真的毫无意义。只需使用int
。括号中的数字是打印值时的宽度,255是荒谬的宽度
- 我喜欢用表名命名主键。这样,主键和外键通常具有相同的名称
你不应该为每道菜安排一张桌子。创建一个表“dish”,其中包含一列“name”。每行代表一道菜。然后创建一个支持表,列出每道菜的(多种)配料。环顾四周寻找关于数据库的教程,这个主题太大,无法在一个(或几个)stackoverflow问题中解释
因此,您不需要按照您考虑的方式列出表名。(这不是SQL直接支持的功能;不同的数据库提供了非标准的方法,但正如所解释的那样,您实际上并不需要这样的功能。)让我重复一遍:看看有没有吸引您的教程;数据库设计不是通过随机探索就能学到的东西。哇,这太有用了!多谢各位。我将这样尝试:)顺便说一句,感谢您的良好编程实践,我仍在学习,这太棒了:D
CREATE TABLE dishes_ingredients (
dish_ingredient_id int auto_increment primary key,
dish_id int not null
ingredient_id int not null,
CONSTRAINT fk_dish_ingredientes_dish FOREIGN KEY(dish_id) REFERENCES dishes(dish_id)
CONSTRAINT fk_dish_ingredientes_dish FOREIGN KEY(ingredient_id) REFERENCES ingredientes(ingredient_id)
);