powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Верное решение для связки таблиц
8 сообщений из 8, страница 1 из 1
Верное решение для связки таблиц
    #35705422
kuznecov.sg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые коллеги.

Возникла такая дилемма. На приложенном рисунке часть структуры БД. Загвоздка заключается в том, что не могу придумать лучшее решение для следующего вопроса.

Сущность "Услуга" имеет такие атрибуты, как "Тип", "Тариф" (в зависимости от типа, но это делается в коде приложения) и "Используемый ресурс"... Но ресурсом может быть и телефонный номер, а может быть и ip-адрес (опять же в зависимости от типа услуги). Но обязательно нужна такая связка, чтобы в единый момент времени не могло существовать двух услуг с одинаковыми, например телефонными номерами.

Что лучше здесь сделать?
--
С уважением,
Сергей Кузнецов.
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35705496
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем понял этоавторНо обязательно нужна такая связка, чтобы в единый момент времени не могло существовать двух услуг с одинаковыми, например телефонными номерами.
имхо, таблица tbl_resources здесь лишняя. Правильнее сделать в tbl_services два внешних ключа (FK) на таблицы номеров и ipшников, а с помощью ограничений типа CHECK обеспечить, чтобы ссылка была только на один из двух возможных ресурсов.

Обсеспечение уникальности телефонных номеров в таблице услуг можно сделать на триггерах. Какая СУБД?
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35705560
kuznecov.sg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot]Обсеспечение уникальности телефонных номеров в таблице услуг можно сделать на триггерах. Какая СУБД?[/quot]

PostgreSQL
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35706411
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuznecov.sg, задачу подробнее опишите.

Вообще шаблон такой: типизация идентификаторов + типизация сервисов + типизация тарификации + связь.
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35706473
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы tbl_resources организовал как view вида
Select NumberId as ResourceID, 1 as ResourceType
from tbl_Numbers_capacity
Union
Select IPAddressID as ResourceID, 2 as ResourceType
from tbl_Ip_capacity
И связывал tbl_services c этим view (если СУБД позволяет).
Тогда ограничение организуется тривиально - уникальный constraint на (ResourceID, ResourceType)
в tbl_services.
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35706528
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЯ бы tbl_resources организовал как view вида А я бы так не организовывал. За удобства надо платить, а плата - скорость.
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35706727
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_L А я бы так не организовывал. За удобства надо платить, а плата - скорость.
Скорость чего?
Выборок? Обновлений?
Вы как-то абстрактно говорите о скорости -не зная ничего про задачу, не зная, какие операции
предполагается осуществлять на этой схеме, не зная, насколько вообще тут критична скорость...
Я так не умею, я умею говорит о скорости (и оптимизации по скорости), только имея в виду конкретные операции.
...
Рейтинг: 0 / 0
Верное решение для связки таблиц
    #35706865
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Насколько я понял из руководства по PostgresSQL, там нет FK на вьюху, так что спор бесполезен.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Верное решение для связки таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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