Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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
在mysql中存储阵列数组_Mysql_Sql_Database_Arrays_Set - Fatal编程技术网

在mysql中存储阵列数组

在mysql中存储阵列数组,mysql,sql,database,arrays,set,Mysql,Sql,Database,Arrays,Set,我正在制作一个表格,其中包括不同类型的汽车:轿车、卡车等。它们由一系列国家生产,每个国家都有一系列制造商,如日本有丰田、本田等,美国有福特、通用等。一旦建立了数据库,我需要执行“选择所有丰田制造的车辆”等操作 什么是最好的存储方式?为什么不干脆有一张叫做汽车的桌子, 然后是像汽车、模型、公司、国家这样的排 然后你就可以 SELECT * FROM Automobiles WHERE Company = 'Toyota' AND Country = 'Japan' 数据结构不一定与数组结构相同。

我正在制作一个表格,其中包括不同类型的汽车:轿车、卡车等。它们由一系列国家生产,每个国家都有一系列制造商,如日本有丰田、本田等,美国有福特、通用等。一旦建立了数据库,我需要执行“选择所有丰田制造的车辆”等操作


什么是最好的存储方式?

为什么不干脆有一张叫做汽车的桌子, 然后是像汽车、模型、公司、国家这样的排

然后你就可以

SELECT * FROM Automobiles WHERE Company = 'Toyota' AND Country = 'Japan'

数据结构不一定与数组结构相同。关键词是“规范化”:以避免冗余的方式设计表,并确保表中的每个记录都包含与描述特定表主题相关的信息

一种可能的结构可以是:

create table vehicles(
vid int auto_increment primary key,
void int,
vname nvarchar(32),
vtype int,
vmotor varchar(32), ...)

create table oem (
oid int auto_increment primary key,
oname nvarchar(32),
countryid int, ... )
vehicles
void
列引用了
oem
(原始设备制造商)表的主键
oid

典型的查询可以是以下内容:

select * from vehicles where 
exists (select 1 from oem where oid=void and countryid=7)
countryid
只是一个整数键,引用另一个包含国家名称等的表(此处未列出)。。假设country表的记录7包含“Japan”,则上述查询将列出日本制造的所有车辆

或者——回到你最初的例子-

select * from vehicles where 
exists (select 1 from oem where oid=void and oname='Toyota')
将列出该特定制造商的所有车辆


这个小例子只是你理解“标准化”的起点。就像Marc B已经说过的:自己研究这个概念,你就能自己回答你的问题。下面是另一个可能有帮助的基于示例的链接:。

您应该学习基本的数据库技术,尤其是,然后您将能够自己回答这个问题。最好的方法是不要使用数组。数组在数据库中是可怕的,如果您所做的只是存储数组,那么您还不如在某个地方引用文本文件。研究一下数据规范化以及如何在不使用数组的情况下存储数据。(MarcB抢先发表评论;))不,我不需要数组。我曾考虑序列化为JSON,但怀疑这是一个标准的数据库问题。看起来确实如此,从一群高中天才的投票结果来看,他们否决了所有他们知道答案的问题。谢谢西奥多。那就行了。这也意味着每个数据对象都会扩展成一个可能非常长的表,对吗?我同意,但想知道这是否是标准方式。我不知道这样做是否正确,但我过去有一个类似列的设置,基本上包含json数组。但是可能有一些更好的使用sql的方法,我只是不知道。对我来说,这是一个很好的开始。谢谢