Объектно-ориентированный подход для извлечения данных из двух связанных таблиц с использованием Coldfusion - PullRequest
0 голосов
/ 01 октября 2010

У меня есть база данных результатов испытаний, в которой есть следующие три таблицы вместе с другими:

testresults - id, buildid, osid, pass, fail
build - id, build
os - id, os

Я сгенерировал ХФУ с помощью генератора Adobe CFC, который поставляется вместе с Coldfusion Builder. Теперь у меня есть объекты-значения для каждой таблицы и методы CRUD. Я пытаюсь получить все записи результатов теста для конкретной сборки и ОС. Поскольку я хочу отобразить информацию о сборке и ОС, мне потребуется информация из таблиц сборки и ОС. Есть ли объектно-ориентированный подход для извлечения этих результатов без необходимости писать запросы с объединениями или создавать представления?

Ответы [ 2 ]

2 голосов
/ 01 октября 2010

Ответ Викаса заслуживает внимания - ORM CF 9 сделает большую часть работы за вас, но под капотом ему потребуется запросить все три таблицы и, вероятно, выполнить соединения.Я не использовал CF Builder, поэтому я не знаю, как эти объекты выглядят, но я подозреваю, что они сразу же попадут в ORM:

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSD628ADC4-A5F7-4079-99E0-FD725BE9B4BD.html

"OOподход »все равно нужно будет как-то объединить данные - как вы это сделаете, решать только вам.Важно то, что объект является контейнером для данных, которые вы хотите, и он не заботится о том, как он получает эти данные или откуда они поступают.

На высоком уровне ОО подход состоит в том, чтобы отделить вашу объектную модель от базы данных.Вы, вероятно, захотите объект TestResults, который содержит данные и методы, которые вы хотите.(например, getTestResultsByBuild (build), getTestResultsByOS (os) и т. д.) Вы также можете получить объект для обработки запросов SQL и передачи данных в объект TestResults (возможно, составленный в TestResults).Это будет ваш объект доступа к данным (DAO), который абстрагирует и инкапсулирует функции доступа к базе данных.

0 голосов
/ 01 октября 2010

Я не знаю, слышали ли вы об ORM (объектно-реляционное сопоставление), и если вы используете ColdFusion 9, просто проверьте его.*

...