过去我只使用 HTML、CSS 和 JavaScript 进行网站开发;但还没有真正接触过 PHP 或 MySQL,所以现在正在自学。
我想开始,因为我的意思是继续,所以想知道关于在 MySQL 中构建以下类型数据的最佳结构的一般意见。
如果我有关于具有以下字段的人的各种条目; ID、姓名、出生日期、电话号码。如果我将此信息存储为 JavaScript 中每个条目的变量,我会将 4 个值作为一个数组,电话号码条目是所有电话号码数组中的一个数组。示例:
["355","John","12/12/2016",["07123456789","07987654321"]]
在 MySQL 中显然没有“数组”数据类型;所以我想知道您个人如何在 MySQL 中以与上述格式类似的格式存储数据;根据我目前对 MySQL 的理解,我看到的选项如下。
- 有 4 个值的 4 列,有一个电话号码数组的字符串,一旦从数据库中检索到,就可以将其拆分成一个数组。
- 最初有 4 列,然后当没有空间容纳新电话号码时,数据库会自动添加一个新列(因此,如果任何条目的电话号码最多为 4,则您d 有 ID,Name,DateOfBirth,Telephone1,Telephone2,Telephone3,Telephone4 作为列)。
- 在数据库中有一个单独的电话号码表,每个号码一个条目存储在列 ID 和电话号码中,ID 指的是原始表中的 ID。然后,当我需要条目的电话号码时,我会运行一个查询,搜索所有具有该 ID 的条目并返回它们。
我敢肯定肯定还有其他方法;因此,如果最佳方法不是上述方法之一,请告诉我。
亲切的问候。
最佳答案
选项 #3 将是标准规范化关系数据库的存储方式。
您的表格可能看起来像(例如):
create table Person (
`ID` int auto_increment primary key,
`Name` varchar(255),
`DateOfBirth` date);
create table Telephone (
`ID` int,
`Number` varchar(20),
foreign key (`ID`) references Person(`ID`) on delete cascade);
关于mysql - 在 mySQL 中存储多层数据的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845418/