Как добавить список или словарь в качестве записи таблицы SQL? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть данные из файла JSON для заполнения записей таблицы SQL.Большинство из них говорят сами за себя, такие как Ints или Strings.Однако у меня есть некоторые данные в виде списка или словаря, например:

Список:

"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
);

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Вам нужно будет создать новую таблицу для любого поля массива или словаря, затем в каждой из этих таблиц есть 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)
);
0 голосов
/ 08 февраля 2019

Вы хотите отдельную таблицу, что-то вроде этого:

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)
);
...