Я единственный, кто запрашивает более одной базы данных? - PullRequest
4 голосов
/ 14 июля 2009

После большого чтения ruby ​​на rails и нескольких соединений с базами данных, я обнаружил, что не так много людей, по крайней мере, с ror. Я привык запрашивать множество различных баз данных и схем и извлекать информацию либо для отчета, либо для одной цельной страницы. Таким образом, пользователю не нужно входить в несколько разных систем. Я могу создать страницу со всеми системами на одной или двух веб-страницах.

Разве это не нормальное явление в веб-дизайне и дизайне, управляемом базой данных?

РЕДАКТИРОВАТЬ: Это потому, что почти весь мой оригинальный код в классическом asp?

Ответы [ 8 ]

2 голосов
/ 14 июля 2009

Наш клиентский веб-сайт работает с 3 базами данных, поэтому я делаю это для. На самом деле, я сгущаю все в представления одной центральной базы данных, которая затем соединяется с остальными.

Хотя я никогда не считал это "нормальным" поведением. Я предполагаю, что большую часть времени вы будете разрабатывать для одной системы и работать против этого.

РЕДАКТИРОВАТЬ: просто для уточнения, мы используем Linq to SQL для нашего уровня данных, и мы определяем объекты по представлениям базы данных. Таким образом, мы сохраняем отчеты и код приложения на одной и той же модели данных. Настройка сущностей Linq требует дополнительной работы, поскольку вам нужно вручную определить первичные ключи и установить ассоциации ... однако пока это определенно доказало свою ценность. Мы пытались сделать это с помощью Entity Framework, но у нас было много проблем с настройкой отношений должным образом, и нам пришлось отказаться. Самое смешное, что я думал, что Entity Framework должен был быть разработан для более сложных сценариев, таких как наш ...

2 голосов
/ 14 июля 2009

Я действительно искренне считаю, что большинство разработчиков ORM, похоже, не принимают во внимание, что пользователи могут захотеть получить доступ к нескольким базам данных. Это, кажется, довольно распространенное ограничение во вселенной ORM.

1 голос
/ 14 июля 2009

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

В вашем случае, правильно ли это делать, зависит от того, почему у вас есть эти отдельные БД.

1 голос
/ 14 июля 2009

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

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

0 голосов
/ 14 июля 2009

Не считая master и различных тестовых экземпляров, я регулярно посещаю девять баз данных. Да, я унаследовал это, и да, «Классический» ASP занимает видное место. Конечно, все «блестящие» дизайнеры этого беспорядка давно ушли. Мы заменяем его более разумными вещами так быстро, как только можем.

Я думаю, что если вы создаете новую систему, продолжаете добавлять базы данных и переходите к двум или трем базам данных, возможно, пришло время переосмыслить свой дизайн. OTOH, если вы собираете данные из нескольких разрозненных систем, то нет, это не так уж странно. В зависимости от того, насколько вы нуждаетесь в срочности, и от вашего бюджета, необходимого для сброса оборудования, и если ваши данные в основном статичны, это будет хорошим сценарием для «сервера отчетов», который периодически извлекает данные с сервера Live. *

0 голосов
/ 14 июля 2009

Если вы строите систему с нуля, делать это не рекомендуется. Если вы работаете с системой, которую не проектировали, у вас нет большого выбора, и это не редкость (в этом разница между «органическим» и «запланированным» ростом).

0 голосов
/ 14 июля 2009

С ORM это может быть немного сложно. Однако это можно сделать. Извлеките объекты по мере необходимости из различных баз данных, а затем используйте их как составной для создания нового объекта, который является фактическим, который требуется Если вы можете пропустить часть процесса ORM, то вы можете напрямую запросить базы данных и построить свой объект напрямую.

0 голосов
/ 14 июля 2009

Получение данных из двух баз данных и составление отчета не редкость, но поскольку запросы между базами данных не могут быть оптимизированы с помощью механизма запросов любой из баз данных, системы OLTP обычно используют одну базу данных, чтобы сохранить Исполнитель приложения.

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