3

我最近一直在使用 Java,而且我的 OOP 下降了。最近,我一直在使用 jQuery、javascript、PHP 和最近的 MySQL 进行基于 Web 的编程。使用 OOP 可以很容易地管理对象和读/写有关它们的信息。现在我正在学习 MySQL,我发现很难将简单的 OOP 程序转换为将其数据存储在数据库中的在线“程序”。我一直在玩Access,只是为了让我可以看到整个数据库,但似乎无法找到存储数据的好方法。为了学习这个......这是一个简单的OOP类结构(Java),我想将其转换为数据库(可以这么说)。

public class Tournament {

  ////////////////////////////////////////////
  //Variable Declaration
  ////////////////////////////////////////////
  Team[] theTeams;  //Array of Team Objects
  int numTeams;     //Number of Teams

  ////////////////////////////////////////////
  //Functions and stuff
  ////////////////////////////////////////////

}



public class Team {

  ////////////////////////////////////////////
  //Variable Declaration
  ////////////////////////////////////////////
  Player p1;        //Player 1
  Player p2;        //Player 2
  int teamNum;

  ////////////////////////////////////////////
  //Functions and stuff
  ////////////////////////////////////////////

}



public class Player {

  ////////////////////////////////////////////
  //Variable Declaration
  ////////////////////////////////////////////
  String fName;     //First Name
  String lName;     //Last Name

  ////////////////////////////////////////////
  //Functions and Stuff
  ////////////////////////////////////////////

}

对于数据库,我想要这样的东西吗?

关系

也许我对整个想法完全不满意。我不确定。如果有人可以让我知道我在哪里,那就太好了。感谢所有帮助。

4

2 回答 2

3

您可以使用像Doctrine这样的ORM库。

于 2013-07-03T01:41:01.750 回答
2

如果我理解正确,您基本上是在就您的数据模型寻求建议?这很简单,这又如何:

数据模型

这里没什么特别的:

  • 一名球员拥有一支球队,一支球队拥有一对多球员
  • 一支球队有零到多场比赛
  • 一场比赛有一个(实际上是两个)到许多球队

注意球队和锦标赛之间的多对多关系。我会让您在表格中添加相关信息。例如,您可以添加一个日期字段Tournaments_has_teams来跟踪团队的比赛。为了进一步推动示例,您还可以在锦标赛中拥有另一张桌子和一对多的比赛/比赛。

设置好数据库后,您可以创建自己的 DAL 或使用 ORM 从应用程序中查询它。请注意,由于阻抗不匹配,您不能有直接的 OOP/RDBMS 映射(您可以通过使用其他技术来克服这个问题,例如面向对象的数据库,就像评论中提到的那样)

于 2013-07-03T12:50:15.483 回答