使用MySQL插入数据

时间:2014-04-27 12:30:57

标签: php mysql

我不是在寻找任何特定问题的解决方案,而是理论上需要有关如何处理以前未知数据(行)的建议。 我们说我的表格分为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

...

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

标准化解决方案,使用类别&问题陈述中的项目:

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`));

每个类别可以包含多个项目。项目表中的每个项目行都通过category_id“连接”到类别。用MySQL创建语句。

答案 2 :(得分:1)

您可以将这些存储在一个包含四个数据列的表中。你叫什么不同"表"可能被称为"类别"或者其他的东西。示例表结构如下所示:

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表。您还可以使用枚举类型,实现check constraint的触发器,或者完全取消检查来实现此功能。同样,数据类型只是猜测,您可能需要其他字段。