最好的OOP实践PHP / MySQL

时间:2011-04-27 19:15:29

标签: php mysql oop structure overloading

我正在创建一个单词老师:

我创建了一个包含多个表的数据库:

TblTheme (themeId, name);<br>
TblGroup (groupId, name, themeIdFK);<br>
TblWeek (weekId, week, groupIdFK);<br>
tblWord (wordId, word, weekIdFK);<br>

因此themeIdFK,groupIdFK和weekIdFK是外键。

在PHP中,我想展示所有主题。如果按下主题,则显示所有组等。 我应该创建什么类。 (如课程主题,小组,周和单词) 什么是检索数据的最佳方法,而不会使数据库超载?

1 个答案:

答案 0 :(得分:0)

首先,如果列包含相同的数据,则它应具有相同的名称:

Themes (theme_id, name);
Groups (group_id, name, theme_id);

然后在创建JOIN时,可以将其写为

SELECT 
   Themes.name AS theme,
   Groups.name AS group
FROM Themes 
LEFT JOIN Groups USING theme_id

至于你原来的问题: 我会去上课:

  • 老师 - 那将是你的MVC模型
  • Word - 由模型使用,为您提供每日单词和一些关于它的其他信息
  • WordMapper - 负责存储和检索Word类的实例

基本上,此设置将实现DataMapper pattern

每个表创建一个类是没有意义的,因为附加表只保存有关Words的信息。至少我是这样看的。

虽然,我不太确定你是否需要制作一个复杂的应用程序,只是为了制作日常用品......也许只是作为练习。