如何在像MySQL这样的数据库上存储来自OOP的对象

时间:2013-07-02 23:43:17

标签: php jquery mysql database oop

我最近一直在使用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
  ////////////////////////////////////////////

}

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

Relationships

也许我完全偏离了整个想法。我不确定。如果有人能让我知道我在哪里,那就太好了。所有帮助都表示赞赏。

2 个答案:

答案 0 :(得分:4)

您可以使用ORMDoctrine库。

答案 1 :(得分:2)

如果我理解这一点,你基本上是在询问数据模型的建议吗?这非常简单,如下:

data model

这里没什么好看的:

  • 一名球员有一支球队,一支球队有一对多球员
  • 一支球队有零到多场比赛
  • 锦标赛有很多球队(实际上是两支球队)

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

设置数据库后,您可以创建自己的DAL,也可以使用ORM从应用程序中查询数据库。请注意,由于impedance mismatch,您无法进行直接的OOP / RDBMS映射(您可以通过使用其他技术来解决这个问题,例如面向对象的数据库,如评论中所述)