Php 使用MySQL插入数据

Php 使用MySQL插入数据,php,mysql,Php,Mysql,我不是在寻找任何特定问题的解决方案,而是在理论上需要关于如何处理以前未知的数据计数(行)的建议。 假设我有一个分为3类的表单(材料、蒙太奇、小预算成本)。 每个类别可以有任意数量的项目,每个项目都有一个id、一个名称和一个价格。 我应该如何在MySQL数据库中存储这些数据?是否可以只存储在一张桌子上? 谢谢你的建议和指导 带有某些ID的报价 *categ Material* ------------------------------ title ID Price

我不是在寻找任何特定问题的解决方案,而是在理论上需要关于如何处理以前未知的数据计数(行)的建议。 假设我有一个分为3类的表单(材料、蒙太奇、小预算成本)。 每个类别可以有任意数量的项目,每个项目都有一个id、一个名称和一个价格。 我应该如何在MySQL数据库中存储这些数据?是否可以只存储在一张桌子上? 谢谢你的建议和指导

带有某些ID的报价

*categ Material*
------------------------------
title           ID       Price
------------------------------

first item    | 123 | 1 195.00

second item   | 845 |   469.00

...

*categ Montage*

item          | 461 |   146.00

item number 2 | 821 |   654.00

third item    | 012 |   931.00

...

*categ MBC*

item          | 642 | 2 135.00

...

你需要了解它是如何工作的。尝试规范化您的数据,从中您可能知道需要多少表。有一个名为材料的表是有意义的,但是对于其他形式,它们的用法是不可理解的。

一个规范化的解决方案,使用问题陈述中的类别和项目:

CREATE TABLE `category` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `category` VARCHAR(45) NULL,
  PRIMARY KEY (`id`));

CREATE TABLE `item` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) DEFAULT NULL,
  `price` double DEFAULT NULL,
  `category_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`));

每个类别可以有许多项。item表中的每个item行都通过category_id“连接”到category。MySQL提供了创建语句的功能。

您可以将这些语句存储在一个包含四个数据列的表中。你称之为不同的“表”的东西可能被称为“类别”之类的东西。示例表结构如下所示:

create table items (
    ItemId int not null auto_increment,
    CategoryName varchar(255) not null,
    Title varchar(255),
    Id int,
    Price decimal(10, 2)
);

这是一个例子。根据您的需要,您可能希望强制执行
CategoryName
只接受您想要的值。最好的方法是使用适当的外键引用创建一个单独的
Categories
表。您还可以使用枚举类型来实现这一点,枚举类型是一个实现
检查约束的触发器,或者干脆不进行检查。类似地,数据类型只是猜测,您可能需要其他字段。

您可以始终将所有内容存储在单个表中。你是否想要一个有效的解决方案是另一回事,不过我想把它存储在一个表中,以后我也需要编辑数据。当然我需要最有效的解决方案,但我不知道怎么做。。。在我的情况下,您会怎么做?非常感谢您提供的一些知识。我希望避免创建大量的表。我该怎么办?我有一个想法,创建3个表命名为材料,蒙太奇。。。。然后为任何报价单ID本身插入项目。这是正确的方法吗?避免大量的表绝对是正确的做法。考虑每个表所代表的实体之间的关系。例如,类别表与项目表具有一对多关系。该关系由项目中的
类别id
字段建立。把这个概念应用到你的桌子上。谢谢你,geoB,我想试试,但这需要很长时间。