Java 什么样的数据库适合存储我的对象?
我正在尝试使用Java开发一个基于插件的小型训练计算器,作为一个家庭项目(设计时考虑了重量训练) 应用程序核心提供插件可能与之接口的某些服务。其中之一就是所谓的“数据服务”,它允许插件存储数据并检索数据。现在,我觉得我的对象的构建方式与关系数据库,甚至与对象关系数据库不匹配。但我希望能够进行一些搜索和查询,如果我的对象存储为二进制文件,这可能不可行,也不容易实现 问题是我想存储一个条目(LogEntry对象),它是一个由一个或多个对象组件组成的对象,它同样由一个或多个对象组件组成 我的对象如下所示(伪代码):Java 什么样的数据库适合存储我的对象?,java,database,Java,Database,我正在尝试使用Java开发一个基于插件的小型训练计算器,作为一个家庭项目(设计时考虑了重量训练) 应用程序核心提供插件可能与之接口的某些服务。其中之一就是所谓的“数据服务”,它允许插件存储数据并检索数据。现在,我觉得我的对象的构建方式与关系数据库,甚至与对象关系数据库不匹配。但我希望能够进行一些搜索和查询,如果我的对象存储为二进制文件,这可能不可行,也不容易实现 问题是我想存储一个条目(LogEntry对象),它是一个由一个或多个对象组件组成的对象,它同样由一个或多个对象组件组成 我的对象如下所
//这就是插件本身
类日志
{
会员个人资料;
成员日志;//理想情况下,这是一个包含日志项的表
…//方法
}
/* ================= */
//日志类的一部分
类PersonalStats
{
成员日期出生日期;
…等等,所有的私人物品
…//方法
}
//日志类的一部分
班级日志
{
成员名单条目;
…//方法
}
/* ================= */
//此类的对象应表示日志中的一个数据集
类日志条目
{
成员名单练习;
成员字符串注释;
成员日期;
…//方法
}
/* ================= */
课堂练习细节
{
会员练习;
成员名单热身;
成员集合模式工作集;
…//方法
}
课堂练习
{
成员字符串名称;
…//方法
}
类集合模式
{
成员整数集;
高级代表成员;
构件重量加倍;
…//方法
}
我的问题是:为了核心应用程序能够提供数据库支持,什么样的DBMS适合这种数据模式?我希望它不是特定于语言的
不过,我不确定数据库是否是未来的发展方向。因此,如果您有任何建议,请随时分享。有时候,答案就在问题中。问题是,您希望将对象存储为一个巨大的表,这就是问题所在 如果您将每个类映射到一个表,那么似乎一切都会顺利进行
你真的应该看看春天的冬眠。我已经启动了许多应用程序,并使用这种组合使它们快速启动和运行。您的应用程序对于相关实体来说是一个很好的例子。一些明显的关系是
Log-->一对一-->个人统计,日志
日志-->一对多-->日志条目
LogEntry-->一对一-->ExerciseDetail
ExerciseDetail-->一对一-->练习
ExerciseDetail-->一对多-->设置模式
您可以整洁地将这些实体关系映射到数据库表,并按照Thom的建议,使用Hibernate之类的任何工具。使用 谢谢你的回答,它帮助了我。我有点太关注某些细节了,所以我没有注意到。谢谢,你说得对。我本想接受这两个答案,但我选择了另一个。
// 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
}