php - 最佳 OOP 实践 PHP/MySQL

标签 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 中,我想显示所有主题。如果按下主题,则显示所有组等。 我应该创建什么类。 (如类(class)主题、小组、周和单词) 在不使数据库重载的情况下检索数据的最佳方法是什么?

最佳答案

首先,如果列包含相同的数据,那么它应该有相同的名称:

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 .

没有必要为每个表创建一个类,因为额外的表只包含有关单词的信息。至少我是这么看的。

不过,我不太确定您是否需要制作一个复杂的应用程序,只是为了制作流行的东西......也许只是作为练习。

关于php - 最佳 OOP 实践 PHP/MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5809323/

相关文章:

javascript - 405 未找到方法。在本地主机上

php - 从给定数组中 id 的数据库中选择

php - 创建一段时间后删除 session 文件

Mysql IN(VARCHAR) 与 IN(INT)

python - MySQL-python 无法连接到服务器

php - 如何做跨库信息同步?

mysql - 如何从另一台 Windows 服务器计算机访问 Windows 服务器计算机上的 MySQL 数据库

javascript - 对象可以*真正*从Error.prototype继承吗?

java - HTML 组件包装为 Java 对象?

objective-c - SOLID 原则如何应用于 Objective-C 中的方法覆盖?