我构建了一个带有 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/