Лучшие практики ООП PHP / MySQL - PullRequest
1 голос
/ 27 апреля 2011

Я создаю учитель слов:

Я создал базу данных с несколькими таблицами:

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 голосов
/ 27 апреля 2011

Прежде всего, если столбец содержит одинаковые данные, он должен иметь то же имя:

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
  • Слово - используется моделью, содержит ежедневное слово и дополнительную информацию о нем
  • WordMapper - отвечает за хранение и извлечение экземпляров класса Word

В основном, эта установка будет реализовывать шаблон DataMapper .

Нет смысла создавать класс для каждой таблицы, потому что дополнительные таблицы содержат только информацию о словах. Чтобы это не было так.

Хотя я не совсем уверен, нужно ли вам создавать сложное приложение, просто для того, чтобы делать обычные вещи ... может быть, только как упражнение.

...