gpt4 book ai didi

java - 什么样的数据库适合存储我的对象?

转载 作者:行者123 更新时间:2023-12-02 08:04:06 25 4
gpt4 key购买 nike

我正在尝试使用 Java 开发一个基于插件的小型训练计算器作为家庭项目(设计时考虑到重量训练)。

应用程序核心提供插件可以与之交互的某些服务。其中之一是所谓的“数据服务”,它允许插件存储数据并检索数据。现在,我觉得我的对象的构建方式与关系数据库甚至对象关系数据库不能很好地配合。但我希望能够进行一些搜索和查询,如果我的对象存储为二进制文件,这可能不可行或不容易做到。

问题是我想存储一个条目(LogEntry 对象),它是一个由一个或多个对象组件组成的对象,而该对象又由一个或多个对象组件组成。

我的对象看起来像这样(伪代码):

// This is the plugin itself
class Log
{
member PersonalStats;
member LogBook; // ideally, this would be a table with the log entries

... // methods
}

/* ================= */

// part of Log class
class PersonalStats
{
member Date birthdate;
... // etc., all the personal stuff

... // methods
}

// part of Log class
class LogBook
{
member List<LogEntry> entries;

... // methods
}

/* ================= */

// an object of this class should represent one dataset in LogBook
class LogEntry
{
member List<ExerciseDetail> exercises;
member String comments;
member Date date;

... // methods
}

/* ================= */

class ExerciseDetail
{
member Exercise exercise;
member List<SetSchema> warmUps;
member SetSchema workSet;

... // methods
}

class Exercise
{
member String name;

... // methods
}

class SetSchema
{
member int sets;
member int reps;
member double weight;

... // methods
}

我的问题是:为了让核心应用程序能够提供数据库支持,什么样的 DBMS 适合这种数据模式?我希望它是非 -特定于语言。

不过,我不确定数据库是否是正确的选择。因此,如果您有任何建议,请随时分享。

最佳答案

您的案例对于相关实体来说是一个很好的案例。一些明显的关系是

  • 日志 --> 一对一 --> 个人统计、日志
  • LogBook --> 一对多 --> LogEntry
  • LogEntry-->一对一-->ExerciseDetail
  • ExerciseDetail --> 一对一 --> 练习
  • ExerciseDetail --> 一对多 -->SetSchema

您可以将这些实体关系巧妙地映射到数据库表,并按照 Thom 的建议,使用 ANy OR Mapping像 Hibernate 这样的工具。使用spring as a integration layer

关于java - 什么样的数据库适合存储我的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com