java 中的简单关系数据库 - 使用什么数据结构?
Simple relational database in java - What data structures to use?
我想使用 java 实现一个简单的内存数据库来存储两个关系表(一个用于 NBA 教练,一个用于 NBA 球队),其架构如下:
Coaches (Coach_ID : 由少于7个大写字母和两位数字组成,
季节:4 位数年份,
first_name : 任何合理的英文名称,
last_name : 任何合理的英文名称,
season_win:非负整数,
season_loss:非负整数,
playoff_win : 非负整数,
playoff_loss : 非负整数,
团队 : 大写字母 and/or 数字)
团队(team_ID:大写字母 and/or 数字,
Location : 美国城市名,一两个英文单词,
Name : 队名,任何合理的英文单词,
联赛:一个大写字母)
我的问题是 java 中可用的哪些数据结构最适合表示具有上述记录类型的两个表?我的数据库必须支持添加记录、查询和其他简单命令,因此最有利于这些操作(添加、搜索等)的数据结构将是最有帮助的。
到目前为止,我已经得出以下结论:
class Team_Record {
}
class Coach_Record {
}
ArrayList <Team_Record> teams;
ArrayList <Coach_Record> coaches;
我的方向是否正确,或者是否有更好的方法来实现数据库表?
注意:数据库仅在内存中。当程序退出时,数据丢失。不需要数据持久性。
谢谢
贾斯汀,
通常数据库表示您打算进行查找和插入。在这种情况下,您需要选择最佳搜索复杂度并插入复杂度数据结构。
从拥有 ArrayList 开始意味着要搜索教练或团队,您需要遍历最坏情况作为 n,其中 n 是集合中对象的总数。
另一方面,如果您使用 Map,因为您使用的是内存数据库,很可能您可以将密钥传递给程序中的不同子模块,从而使教练和团队的搜索变得容易.
在处理数据库时,关键因素是可搜索性和插入。最快的查找方式和最快的插入方式。
希望这对您有所帮助。
我想使用 java 实现一个简单的内存数据库来存储两个关系表(一个用于 NBA 教练,一个用于 NBA 球队),其架构如下:
Coaches (Coach_ID : 由少于7个大写字母和两位数字组成,
季节:4 位数年份,
first_name : 任何合理的英文名称,
last_name : 任何合理的英文名称,
season_win:非负整数,
season_loss:非负整数,
playoff_win : 非负整数,
playoff_loss : 非负整数,
团队 : 大写字母 and/or 数字)
团队(team_ID:大写字母 and/or 数字,
Location : 美国城市名,一两个英文单词,
Name : 队名,任何合理的英文单词,
联赛:一个大写字母)
我的问题是 java 中可用的哪些数据结构最适合表示具有上述记录类型的两个表?我的数据库必须支持添加记录、查询和其他简单命令,因此最有利于这些操作(添加、搜索等)的数据结构将是最有帮助的。
到目前为止,我已经得出以下结论:
class Team_Record {
}
class Coach_Record {
}
ArrayList <Team_Record> teams;
ArrayList <Coach_Record> coaches;
我的方向是否正确,或者是否有更好的方法来实现数据库表?
注意:数据库仅在内存中。当程序退出时,数据丢失。不需要数据持久性。
谢谢
贾斯汀,
通常数据库表示您打算进行查找和插入。在这种情况下,您需要选择最佳搜索复杂度并插入复杂度数据结构。 从拥有 ArrayList 开始意味着要搜索教练或团队,您需要遍历最坏情况作为 n,其中 n 是集合中对象的总数。
另一方面,如果您使用 Map,因为您使用的是内存数据库,很可能您可以将密钥传递给程序中的不同子模块,从而使教练和团队的搜索变得容易.
在处理数据库时,关键因素是可搜索性和插入。最快的查找方式和最快的插入方式。
希望这对您有所帮助。