如何添加列表或字典作为SQL表项?

问题描述 投票:0回答:2

我从JSON文件中的数据来填充SQL表条目。大部分是自我解释如IntsStrings。但是,我有一个列表的形式的一些数据,或字典,例如:

列表:

"Favorite_Things": ["Netflix", "Pizza"]

字典:

"Time_Slots": {"1:00": 8, "2:00": 12, "3:00": 5}

我不确定如何在SQL表代表了这些,你可以帮给我一个例子来填补这些空白?

CREATE TABLE user (
    USER_ID CHAR(56) PRIMARY KEY,
    AGE INT NOT NULL,
    FAVORITE_THINGS ??????
    TIME_SLOTS ??????
    EYE_COLOR CHAR(12) NOT NULL
);
mysql sql ddl create-table
2个回答
0
投票

你想有一个单独的表,这样的事情:

create table userThings (
    userThingId int auto_increment primary key,
    userId,
    thingId int,
    constraint fk_userThings_userId foreign key (userId) references users(userId),
    constraint fk_userThings_thingId foreign key (thingId) references things(thingId)
);

0
投票

您将需要创建任何数组或字典领域的一个新的表,然后在每个用户表链接回那些表的user_id说明。

下面是你需要创造什么:

CREATE TABLE user (
    USER_ID CHAR(56) PRIMARY KEY,
    AGE INT NOT NULL,
    EYE_COLOR CHAR(12) NOT NULL
);
CREATE TABLE USER_FAVORITE_THINGS (
    FAVORITE_THINGS_ID INT PRIMARY KEY,
    USER_ID CHAR(56),
    FAVORITE_THING CHAR(100),
    FOREIGN KEY (USER_ID) REFERENCES USER(USER_ID)
);
CREATE TABLE USER_TIME_SLOTS (
    TIME_SLOTS_ID INT PRIMARY KEY,
    USER_ID CHAR(56),
    TIME_SLOT_KEY CHAR(5),
    TIME_SLOT_VALUE INT,
    FOREIGN KEY (USER_ID) REFERENCES USER(USER_ID)
);
© www.soinside.com 2019 - 2024. All rights reserved.