Java数据库正确方法

标签 java json

我构建了一个带有 2 个场景的小型 JavaFX。用户可以输入 3 个字段(文本)并为一个对象上传一些文档。

所以我在想,当用户点击保存时,会创建一个 json 对象并将其附加到 Json 对象列表中。然后将这些 Json 对象写入文件。

这是我的想法:

{
  "objects": {
       "object1": {
               "field1": "foo"
               "field2": "foo"
               "field3": "foo"
               "folderwithfileslocation": "C:/ProgramFiles/myapp/foobar/" 
               },
       "object2": {
               "field1": "foobar"
               "field2": "foobar"
               "field3": "foobar"
               "folderwithfileslocation": "C:/ProgramFiles/myapp/barbar/" 
               },
.......
....
..
}

这些将在启动时读入对象,因此用户可以访问它们,因此他可以编辑、添加、删除等典型的 CRUD。

这是正确的做法吗?最多会有 500-600 条记录。 我应该添加一个唯一 ID(idk,如 randomUUID())吗?

谢谢

最佳答案

大多数数据库模式会添加一个 UUID 作为主键,但了解原因很重要 - 主键允许您查找特定文档。如果用户更新或删除特定文档,您将需要一种方法在数据库中找到该记录,以便您可以应用该操作。

如果其他列之一(可能是文件夹?)是唯一的(并且不可为空),这将作为一个完美的 PK 本身,而无需添加 UUID。同样,如果对象始终作为列表读取,您可以将该列表中的索引用作 PK,但这会对列表的排序做出一些假设。如果这些不能为您完成工作,添加 PK 可能是个好主意,而 UUID 是一种非常好的方法。

就我个人而言,我希望单独添加一个 UUID 用于调试是值得的。开销很小,但对可追溯性有很大影响。

关于Java数据库正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31231770/

相关文章:

java - hibernate项目类文件com/mysql/jdbc/PreparedStatement中的代码段长度错误

java - 使用递归打印递增和递减的数字

java switch case问题

java - 添加图像时 JFrame 不起作用

java - CompletableFuture,可变对象和内存可见性

java - 尝试发送到 JSON 时,应用程序在 HttpResponse 响应 = httpclient.execute(httpget) 上崩溃

javascript - 如何访问 PromiseValue 中的数组值?

json - 试图比较任何?带字符串

javascript - 使用 .get 获取 json 数据 jquery

javascript - 从 json 获取值到 angularjs 对象