gpt4 book ai didi

php - MySQL 将人口统计数据存储在多个表中

转载 作者:行者123 更新时间:2023-11-29 08:20:50 25 4
gpt4 key购买 nike

我有一个包含多个客户的平台,每个客户都有我需要存储的大量人口统计数据。考虑到这一点,我似乎可以在 MySQL 中做两件事之一。要么:

选项#1:准备一个包含每个人的人口统计数据的大表。例如:

Table: clientDemographics

id | clientID | firstName ....
1 | 34 | John ......
2 | 12 | Fred ......

选项#2:将每个客户端拆分为拥有自己的表:

Table: client34_demographics

id | firstName ....
1 | John ......
<小时/>
Table: client12_demographics

id | firstName ....
1 | Fred ......

按客户端拆分表有什么优点(效率、安全性、可扩展性)或缺点吗?其中哪一个是更好的方法?谢谢!

最佳答案

你的第二个例子不是一个好主意(为每个人口统计创建一个表)。相反,我会选择更“规范化”的东西,其中包含客户端表中的唯一可识别信息,然后使用附加元数据(人口统计数据)作为查找:

Table: Clients

ClientId | FirstName | LastName | Email
-------------------------------------------------
1 | John | Smith | jsmith@email.com
<小时/>
Table: Demographics

DemographicId | Name
-------------------------------------------------
1 | Gender
2 | Nationality
3 | Age
<小时/>
Table: Clients_Demographics

CDId | ClientId | DemographicId | Value
-------------------------------------------------
1 | 1 | 1 | Male
2 | 1 | 2 | American
3 | 1 | 3 | 27

通过这种方式,您可以轻松地对人口统计类型、人口统计值、客户等进行排序,同时节省数据库空间、提高查询性能并保持数据可扩展。我所说的可扩展性是指,需要添加另一个人口统计数据吗?只需向 Demographics 表中添加另一行,然后将 Clients_Demographics 表中的值与客户相关联。如果未设置它们的值(即不存在行),那么您知道该值在表单中可以被视为空,直到它们实际设置值为止。

关于php - MySQL 将人口统计数据存储在多个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19454227/

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