gpt4 book ai didi

mysql - 带有数组的表结构

转载 作者:行者123 更新时间:2023-11-29 21:36:24 26 4
gpt4 key购买 nike

设计表结构的最有效方法是什么,可以解决以下问题。我的数据以逗号分隔的文本文件形式出现:

ID、姓名、结婚对象、居住地、工作单位、出生日期
1325,乔,安娜;玛丽;埃伦;安娜,布达佩斯;巴黎;布达佩斯,IBM,1965-01-15
2313,Mark,Elise,布加勒斯特;伦敦;布加勒斯特;伦敦,微软,1972-01-17
3009,乔·安娜;辛迪;沙奎亚,伦敦;纽约;布琼布拉;纽约;布加勒斯特;布琼布拉;纽约;布琼布拉,Netflix,1975-01-15

ID 不是唯一的,但我可以根据字段的组合创建唯一的主键。两个乔截然不同,但只有一个安娜喜欢乔(她先嫁给了乔,然后嫁给了年轻的乔,老年时她又嫁给了她的初恋情人乔)我需要以这样的方式读取 mysql 表中的数据,以便我可以有效地运行如下查询:

“安娜结过几次婚”
“有多少人从伦敦搬到布加勒斯特”
“有多少人同时居住在伦敦和布加勒斯特”

真实数据有点不同,每天包含大约 700K 条记录,Lived_in 数组最多有 400 个元素。 MongoDB(或类似的)可能更合适,但我必须使用mysql。

最佳答案

您需要一对多关系设计来加快 SQL 速度:

persons (id, name, company, dob)
marriages (id, person_id, married_to, date_from)
addresses (id, person_id, city, sequence_id)

这是您的报告的 SQL:

select count(*) from marriages where married_to='Ana';

select count(*) from addresses a,addresses b
where a.person_id=b.person_id
and a.city='London' and b.city='Bucharest'
and a.sequence_id + 1 = b.sequence_id

select count(*) from addresses a,addresses b
where a.person_id=b.person_id
and a.city='London' and b.city='Bucharest'

关于mysql - 带有数组的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892308/

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