seine
Новичок
Шаблон Table Data Gateway. Какие методы можно в него помещать?
Привет, нужен совет по реализации. Есть объект, который представляет собой таблицу в бд (шаблон Table Data Gateway). Таблица содержит список книг. Из этой таблицы надо получать записи, но не все, а только те, которые подходят по усливиям поиска. Например, чтобы год издания был меньше 1980 и жанр - научная фантастика.
Условия поиска типовые, их не очень много и они должны как бы накладываться на запрос к бд (вообще-то, просто добавляться в секцию "where").
Я сейчас добавил к классу таблицы метод addFilter(), где устанавливаю условие выбора. Вызывать addFilter() можно несколько раз, тогда все условия суммируются. Потом вызывается метод fetchAllUsingFilters() и извлекаются только те поля, которые подходят по заданым условиям.
Кроме метода addFilter() еще есть метод setOrder(), который задает порядок сортировки. Также есть методы, для извлечения записей только с определенной страницы, установки кол-ва записей на одной странице и метод для нахождения общего кол-ва страниц...
А теперь вопрос По-моему, я напихал слишком много методов в класс для работы с таблицей, как я понимаю, этот класс должен быть просто отражением таблицы из бд, а методам для постраничной навигации и фильтрации здесь не место, но тогда где их помещать?
Прошу прощения, за такой тупой вопрос, возможно, я чего-то не понимаю глобального.
Хочется узнать, как это лучше организоват (вплоть до того, как их размещать в файловой системе). Или пошлите меня почитать какой-нибудь паттерн по этой теме или пример из какого-нибудь кода, бо я че-то вообще ниче не пойму.
Привет, нужен совет по реализации. Есть объект, который представляет собой таблицу в бд (шаблон Table Data Gateway). Таблица содержит список книг. Из этой таблицы надо получать записи, но не все, а только те, которые подходят по усливиям поиска. Например, чтобы год издания был меньше 1980 и жанр - научная фантастика.
Условия поиска типовые, их не очень много и они должны как бы накладываться на запрос к бд (вообще-то, просто добавляться в секцию "where").
Я сейчас добавил к классу таблицы метод addFilter(), где устанавливаю условие выбора. Вызывать addFilter() можно несколько раз, тогда все условия суммируются. Потом вызывается метод fetchAllUsingFilters() и извлекаются только те поля, которые подходят по заданым условиям.
Кроме метода addFilter() еще есть метод setOrder(), который задает порядок сортировки. Также есть методы, для извлечения записей только с определенной страницы, установки кол-ва записей на одной странице и метод для нахождения общего кол-ва страниц...
А теперь вопрос По-моему, я напихал слишком много методов в класс для работы с таблицей, как я понимаю, этот класс должен быть просто отражением таблицы из бд, а методам для постраничной навигации и фильтрации здесь не место, но тогда где их помещать?
Прошу прощения, за такой тупой вопрос, возможно, я чего-то не понимаю глобального.
Хочется узнать, как это лучше организоват (вплоть до того, как их размещать в файловой системе). Или пошлите меня почитать какой-нибудь паттерн по этой теме или пример из какого-нибудь кода, бо я че-то вообще ниче не пойму.