powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ссылочная целостность между таблицами в различных БД
21 сообщений из 21, страница 1 из 1
Ссылочная целостность между таблицами в различных БД
    #32007150
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем !
Возможны ли связи (внешние ключи) между таблицами , находящихся в различных БД на одном сервере MS SQL 2000 ?
Каким образом поддерживать ссылочную целостность в этом случае ?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007153
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Возможны ли связи (внешние ключи) между таблицами
нет.

Если возникла такая необходимость, может лучше задуматься а почему собственно эти таблицы в разных базах?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007160
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим база main используется для оперирования информацией по текущему году. Информация за прошлые года не нужна и переносится в другую БД - main_arhiv, имеющей такую же структуру. Существуют таблицы , единые для обеих БД . Например таблица /Сотрудники/ , или таблица /Валюта/.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007161
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так это не ссылочная целостность между базами
Если есть две одинаковые базы, в каждой есть поддержка ссылочной целостности и в чем тогда проблема? Сбособов перегнать данные масса, а тем более если они на одном сервере так вообще проблем нет insert - delete и вся проблема
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007176
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем перегонять данные ? Существуют одинаковые таблицы , данные в которых одинаковы для различных баз. Эти таблицы находятся в одной общей базе , а таблицы из различных БД ссылаются на эти таблицы. Можно , конечно содержать копии общих таблиц в каждой БД в виде вьюеров , но может есть другой путь ?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007196
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Брр.. ничего не понял
Объясните на примере, плиз.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007240
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Andrew. Я минут пять хохотал над твоим ответом, даже слезы вышибло! Классный прикол! Ответ, видимо, в стиле новых правил русского языка (которые готовятся к утверждению госдумой).
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007253
Ant_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хранение информации о constraints (FK, PK) происходит на уровне базы данных и это определяется структурой системных таблиц SQL 7.0/ 2000.
Ответ - нет, нельзя определить FK между таблицами разных БД.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007274
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Ant_M : Благодарю за ясный, информативный ответ .

2Gennady : ПРимер -
БД main : Таблица ПРОДУКЦИЯ и другие, связанные с ней таблицы , содержат данные по произведенной продукции за последние несколько лет. Когда еденица продукции проходит весь производственный цикл и не используется для отчетов ,она переносится в архивную бд arhiv_main . Допустим , существует также БД main2 по продукции , которая по каким то причинам не прошла полный производственный цикл и ее отложили до лучших времен , и т.д. В то же время , для всех этих баз существуют таблицы , содержание которых должно быть одинаково для всех бд . Например - таблицы main.dbo.ВАЛЮТА , main.dbo.СОТРУДНИК , и т.д. Было бы конечно неплохо , если бы таблицы из других бд могли ссылаться на эти справочники .
Однако внешние ключи к этим таблицам существуют только в бд main .
Наличие баз данных с одинаковой структурой , но различным содержанием информации очень удобно для клиентской части , которая одна и та же для всех бд. Пользователь только выбирает , с какой бд ему работать .
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007275
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Andrew

Схема данных - база данных, ссылочная целостность посему относится только к базе данных (по моему логично, не так ли?). Так что у Вас есть только два пути:
1. Хранить копии справочников во всех БД
2. Сделать единую схему данных.
Я бы выбрал скорее всего второе.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007281
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я бы выбрал репликацию. Одна БД - для OLTP, другая - аналог OLAP (только на чтение, но запросы емкие). В статьях публикаций указал бы, что передается полностью, а что частично.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007343
Erika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переведя свои базы на SQL-сервер, я, ничтоже сумняшеся, связи между БД "Сотрудники", "Оборудование", и "Библиотека" прописала через триггеры. Как-то мне показалось не логичным вколачивать списки сотрудников в разных базах несколько раз, тем более, что этим занимаются разные люди. Правда, развлекалась я на SQL 7.0. А что, в SQL 2000 что-то этому мешает? Или это некорректно по сути?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007421
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Erika .
А действительно, триггеры - простое и подходящее решение в данном случае !
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007422
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Erika .
А действительно, триггеры - простое и подходящее решение в данном случае !
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007426
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А действительно, триггеры - простое и подходящее решение в данном случае

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

Думаю, что в Вашем случае все таки лучшее решение, которое подсказал Garya.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007433
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Шевелить при каждом обновлении две базы, одна из которых как я понимаю не маленькая вряд ли подходящее решение.

Ну если нужна поддержка ссылочной целостности (см. вопрос) то без шеведения ну никак. А что касается триггеров - раз SQL2K, то и Instead триггера. В "нормальном" режиме они срабатывают до RI, следовательно действия с данными не вызовут тяжолой операции по откату транзакции в случае обнаружения нарушения целостности в триггере.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007435
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Павел
>Ну если нужна поддержка ссылочной целостности (см. вопрос) то без шеведения ну никак.

А нужна ли она, эта поддержка ссылочной целостности между БД? По моему нет
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007437
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Безусловно не всегда. Просто цена и трудоемкость перелопачивания структуры данных в рабочей базе (особенно если она досталась по наследству) может быть очень высокой. А вариант с триггерами позволяет достаточно эффективно и с небольшими усилиями выйти из положения. А вот если разрабатывать базу с нуля, то абсолютно с Вами согласен - это изврат.
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007617
ПавелК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А слабо использовать MTS или что-нибудь подобное?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007618
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ПавелК

Подскажите, плиз, зачем? Типа выпендрится я MTS знаю? Дык Вы тода сами для начала получше его изучите, а потом прикиньте, а причем здесь собсно MTS?
...
Рейтинг: 0 / 0
Ссылочная целостность между таблицами в различных БД
    #32007632
Евгений К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартное решение предлагает MS (сорри, повторю вышесказанное, согласен с Garya):
Репликация. Тип - в зависимости от срочности. По приведенному фрагменту точно не скажешь.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ссылочная целостность между таблицами в различных БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]