sql присоединиться или вызвать другую модель? - PullRequest
0 голосов
/ 21 апреля 2009

У меня есть две таблицы (пункт и категория, я думаю, они говорят сами за себя) и два связанных объекта модели. Я сталкиваюсь с проектными решениями в функции, которая выбирает 1 элемент из базы данных. Мне нужен этот метод, чтобы также вернуть категорию (имя, а не только идентификатор) элемента.

У меня есть два варианта:

  • В модели элементов используйте соединение SQL для более быстрого получения данных.
  • В модели элементов вызовите модель категории, чтобы получить данные для лучшего кода.

Что мне делать? В любом случае мне нужна модель категории, потому что я также покажу список категорий и т. Д.

Ответы [ 4 ]

1 голос
/ 21 апреля 2009

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

Ваше время не так незначительно. Не время того, кто (вы? Кто-то еще?) Поддерживает код.

Кодируйте его правильно, назовите категорию, и если она окажется «слишком медленной», измените ее.

Преждевременная оптимизация - корень всего зла.

0 голосов
/ 21 апреля 2009

Вопрос, с которым я тоже столкнулся ... В общем, я обнаружил, что если вы ищете производительность, вы должны пойти на объединение. Если скорость не имеет значения, переходите ко второму.

0 голосов
/ 21 апреля 2009

если вы все равно собираетесь получать категории, то почему бы не сохранить / не кэшировать их и использовать один и тот же объект для поиска имен категорий вместо SQL-соединения. в этом случае аргумент, что SQL-соединение будет быстрее, теперь незначителен до степени

, если только это не огромный объем данных, где скорость критична, то я, вероятно, выбрал бы тот метод, который вам удобнее всего поддерживать.

0 голосов
/ 21 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...