JSON: добавить новые данные JSON в MySQL - PullRequest
0 голосов
/ 25 января 2019

Я пишу программу на Java, чтобы хранить информацию об информации для входа в систему для доступа к Интернету для студента и сохранять информацию в базе данных.

Моя таблица выглядит так:

mysql> desc data_log_test;
+-------------+-------------+------+-----+-------------------+-------+
| Field       | Type        | Null | Key | Default           | Extra |
+-------------+-------------+------+-----+-------------------+-------+
| studentID   | varchar(40) | NO   | PRI | NULL              |       |
| details     | json        | NO   |     | NULL              |       |
| date_insert | timestamp   | NO   |     | CURRENT_TIMESTAMP |       |
+-------------+-------------+------+-----+-------------------+-------+

Информация, которая будет храниться в деталях, должна быть:

 {
    "time_login": 1, 
    "ipInt": 167772160, 
    "urlAccess": "https://google.com", 
    "duration": 30
 }

Эта информация будет время от времени обновляться.

Мой вопрос - возможно ли добавить только детали?информация в таблице?

Я хочу указать конкретный идентификатор студента, он может содержать более 1 информации.

Спасибо.

1 Ответ

0 голосов
/ 25 января 2019

Если вы хотите, чтобы у студента была более подробная информация, вам следует установить соединение ManyToOne ( см. Ссылку )

CREATE TABLE student_detail (
    ID        varchar(40),
    studentID varchar(40),
    detail    json,
    INDEX studentID_idx (studentID),
    FOREIGN KEY (studentID)
        REFERENCES data_log_test(studentID)
        ON DELETE CASCADE
    PRIMARY KEY (ID)
)

PS:

  • Я рекомендую вам переименовать вашу data_log_test таблицу в student, поскольку в ней хранятся студенты
  • Я рекомендую переименовать studentID поле student в id
  • Также ярекомендуем вам следовать общим соглашениям об именах, например, имена таблиц и столбцов должны быть named_like_this, поэтому не studentID, а student_id (взгляните на Snake case )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...