gpt4 book ai didi

mysql - 在 MySQL 中存储多个属性

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:11 29 4
gpt4 key购买 nike

我有一个数据库(用于 PHP Web 应用程序),其中包含一个具有各种属性的表 client。两个这样的属性是 phone_numbersemails

一个客户可以有零个或多个电话号码和零个或多个电子邮件。

我想将客户表存储为:

create table client (
id int not null auto_increment primary key,
...
text phone_numbers,
text e-mails) default character set utf8

电话号码的格式为 "pn1:type1,pn2:type2,...,pnN:typeN"电子邮件的格式为 "e1,e2,...,eN"

我以后可能会遇到这种设计的一些重要问题吗?

针对这些问题是否有更好的设计,为什么?

最佳答案

您正在考虑的结构未规范化,会给您带来问题...当您搜索时、显示数据时以及在许多其他情况下。

最好有 3 个表:

client      (id, ...)
phonenumber (id, client_id, phone_type, phone_number)
email (id, client_id, email)

... 或者只有 2 个表:

client  (id, ...)
contact (id, client_id, contact_type, contact_text)

我更喜欢后者,因为它提供了更大的灵 active (它可以处理社交网络帐户、网页和许多其他联系方式)。比三表结构更容易搜索,管理新的联系人类型时不需要更改。

关于mysql - 在 MySQL 中存储多个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25465759/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com