数据库架构中的 Java 类

标签 java android database retrofit

我有一个相对简单的数据库,其中包含 Player表(单个字段 username )和 Game (单个字段 date )一个。作为Player可参加多个Game和一个 Game可多人播放Player ,我用many-to-many关系其中额外的列 score添加到连接表中以存储 Player 的分数在 Game .

在我的 Java 代码中,我显然有一个 Player带字段的类 username和一个 Game一个带字段date 。但是,我不知道是否应该为连接表创建第三个类,或者是否应该添加 List<Player> Game 内的属性类以及 List<Integer> 的列表存储分数。

编辑:示例

Player表:

player_id  player_name
    1         Bob
    2         Lea
    3         John

Game表:

game_id   game_date
1         20/08/2017
2         19/08/2017

Joined表:

game_id  player_id  score
1          1        50
1          2        35
2          1        50
2          3        29

最佳答案

我不会为 joined 创建单独的类 table 。我会选择 Map<Player, Integer>Game类保存游戏中的玩家及其各自的分数。

像这样(简单,没有错误检查):

class Game {

    Map<Player, Integer> playerScores = new HashMap<>();

    void addPlayer(Player p) {
        playerScores.put(p, 0);
    }

    void incrementScore(Player p, int increment) {
        int newScore = getScore(p) + increment;
        playerScores.put(p, newScore);
    }

    int getScore(Player p) {
        return playerScores.get(p);
    }

    // etc...

}

关于数据库架构中的 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45782406/

相关文章:

java - 从两个数字中随机选择一个数字

android - 如何防止EditText错误图标被填充插入?

java - Access/更新共享数据库

android - webview 不下载文件

java - Android Studio 项目文件将文本更改为奇怪的文本

mysql - 阻止空白值输入数据库

java - 如何确保主键值没有间隙,即使在删除之后也是如此?

java - 估计文件是否为 MIME 类型

java - 如何确保该文件是我创建的?

java - 使用 Eclipse 在 Java 资源包中搜索包含非 ASCII 字符的单词