Это проблема дизайна, с которой я сталкиваюсь.Допустим, у меня есть сайт автомобилей.Автомобили имеют следующие атрибуты с различными возможными значениями.
- Цвет: красный, зеленый, синий
- Размер: маленький, большой
На основе этих атрибутовЯ хочу классифицировать автомобили для молодых людей, автомобили для людей среднего возраста и автомобили для пожилых людей по следующим критериям:
- Cars_young: красный или зеленый
- Cars_middle_age: синий ибольшой
- Cars_elder: синий и маленький
Я назову этот критерий target
У меня есть таблица автомобилей со столбцами: id,цвет и размер.
Мне нужно иметь возможность:
a) при извлечении автомобиля по идентификатору, указать его target (если этомолодые люди, люди среднего возраста или пожилые люди)
b) иметь возможность запрашивать базу данных, чтобы узнать, сколько просмотров имели автомобили, принадлежащие каждой цели
Кроме того, как разработчик, я должен реализовать его так, чтобы эти критерии были легко изменены.
Что является лучшим способомреализовать это?Есть ли шаблон дизайна для этого?Я могу объяснить два возможных решения, о которых я думал, но мне не очень нравится:
1) создать новый столбец в таблице базы данных с именем target , так что этолегко сделать и а) и б) .
Недостатки: каждый раз, когда меняется crieteria, мне приходится обновлять цель столбца для всех автомобилей, а также мне приходится менять функцию insertNewCar ().
2) Реализуйте это в классе «Автомобили».
Недостаток: каждый раз, когда меняются критерии, мне нужно изменить запрос в b) , а также код в 'getCarById' в a) .
3) Использовать TRIGGERS в SQL, но я бы хотел, если возможно, избежать этого решения
Я хотел бы иметь возможность иметь это определение критерия где-то в коде, которое можно легко изменить, итакже, надеюсь, будет использоваться классом «Автомобили».Я думаю о каких-то одноэлементных или глобальных объектах для «цели», которые могут быть введены в некоторые методы Cars.
Кто-нибудь может объяснить хорошее решение или отправить документацию о каком-либо посте, который сталкивается с этой проблемой, или о шаблоне, который ее решает?