java - JSON:向 MySQL 添加新的 json 数据
问题描述
我编写了一个 Java 程序来保存有关学生 Internet 访问信息的登录信息的信息,并将这些信息保存到数据库中。
我的桌子是这样的:
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
}
此信息将不时更新。
我的问题 - 是否可以只在表格中添加详细信息?
我想要特定的学生 ID,它可以有超过 1 个详细信息。
谢谢你。
解决方案
如果你想让学生有更多的细节,那么你应该实现一个多对一连接(见参考)
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)
推荐阅读
- javascript - 带有 Array 扩展类构造函数调用的 JS Array.prototype.filter
- java - 有没有办法检查Java在读取文本文件时是否开始读取文本文件中的新行
- kotlin - (不可变集合是可变的)在 Kotlin 中返回 true
- wordpress - 使用 woocommerce_email_actions 在地址保存上发送 WooCommerce 电子邮件
- java - 我的 GUI 无法识别我的实例方法。我怎样才能解决这个问题?
- javascript - 从 API 到正常格式的 Unix 时间
- odoo - 如何定义在 Odoo 11 Payroll 模块中计算一次的工资规则
- swift - 如何使用 JSQMessages 显示用户的 firebase 帐户名称?
- c# - .NET 任务中的代码最终是否通过本机 Windows 线程在 CPU 或 CPU 内核上运行?
- proxy - 在 Internet 选项中更改代理设置后是否应该重新启动计算机?