假设我有这段数据(实际上每隔几秒大约有5,000个条目,最初是数据转储中的50,000个):
[
"person": {
"name": "Johnny Bravo",
"location": {
"zipcode": 11111,
"address": "1 Second Ave"
},
"phone_numbers": [ 15007774321, 12227435432 ]
}
]
和这个架构:
CREATE TABLE person(
id serial PRIMARY KEY,
name varchar(255) UNIQUE,
location_id integer NOT NULL REFERENCES location(id)
)
CREATE TABLE location(
id serial PRIMARY KEY,
zipcode integer NOT NULL,
address varchar(255) NOT NULL
)
CREATE TABLE phone_number(
id serial PRIMARY KEY,
"number" integer NOT NULL
)
CREATE TABLE person_number_relationship(
id serial PRIMARY KEY,
phone_number_id integer NOT NULL REFERENCES phone_number(id),
person_id integer NOT NULL REFERENCES person(id)
)
这是过于简单化但重要的部分在这里。目前要插入此数据,我使用访问数据库(scala)的语言来完成大部分工作。
我提出的问题可以分为两部分:
理想情况下,我想将所有这些逻辑推送到数据库,在那里我不会浪费内存在驱动程序和数据库之间发送额外信息