powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / использование ограниченного диапазона из справочник
18 сообщений из 18, страница 1 из 1
использование ограниченного диапазона из справочник
    #35902634
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часто бывает что есть общий справочник ЧЕГОТО
но для определенных условий необходимо использовать в рамках (то ли программы, толи каких либо требований) ограниченный диапазон значений из этого справочника

Помогите выразить это дело структурно
Я себе представляю это так (но правда оно не работает для меня :( )

ЧЕГОТО
--------
ID
......

Программа
---------------
ID программы
......

ЧЕГОТО для программы
-----------------------
ID программы
ID ЧЕГОТО


Документ
-----------------
ID документа
ID программы
ID ЧЕГОТО - но получается что я не могу его брать из "ЧЕГОТО для программы"!!!
....

Мне в документ нужно вставлять ЧЕГОТО исключительно ограниченный набор из таблицы "ЧЕГОТО для программы" для конкретной программы

Помогите советом плиз
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35902735
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spно получается что я не могу его брать из "ЧЕГОТО для программы"

Как это не можешь?
Код: plaintext
1.
2.
3.
4.
SELECT ч.DATA
FROM Программа п 
JOIN "ЧЕГОТО для программы" чдп ON п.ID = чдп."ID программы"
JOIN ЧЕГОТО ч ON ч.ID = чдп."ID ЧЕГОТО"
WHERE ...

Или я чегот-то не понял?
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35902784
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenspно получается что я не могу его брать из "ЧЕГОТО для программы"

Как это не можешь?
Код: plaintext
1.
2.
3.
4.
SELECT ч.DATA
FROM Программа п 
JOIN "ЧЕГОТО для программы" чдп ON п.ID = чдп."ID программы"
JOIN ЧЕГОТО ч ON ч.ID = чдп."ID ЧЕГОТО"
WHERE ...

Или я чегот-то не понял?

Я просил структурно - чтоб на уровне ссылочной целостности а не программным путем!
программным путем - вопросов не возникает
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35902826
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spЯ просил структурно - чтоб на уровне ссылочной целостности а не программным путем!
программным путем - вопросов не возникает
Ссылочная целостность действует на этапе добавления, изменения или удаления данных. Не совсем понятно что ты имеешь ввиду под ссылочной целостностью при запросе данных.
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903149
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spЯ себе представляю это так (но правда оно не работает для меня :( )

ЧЕГОТО
--------
ID
......

Программа
---------------
ID программы
......

ЧЕГОТО для программы
-----------------------
ID программы
ID ЧЕГОТО
-- Здесь первичный ключ - оба поля !!!

Документ
-----------------
ID документа
ID программы
ID ЧЕГОТО - но получается что я не могу его брать из "ЧЕГОТО для программы"!!!
-- А вот эта сладкая парочка - ссылка на "ЧЕГОТО для программы". Не одно поле, а два
....

Мне в документ нужно вставлять ЧЕГОТО исключительно ограниченный набор из таблицы "ЧЕГОТО для программы" для конкретной программы

Помогите советом плизПроблема не очень понятна, но как -то попытался ответить... (см. в тексте)
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903221
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем в таблице "ЧЕГОТО для программы" вообще нужен первичный ключ?!
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903269
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenА зачем в таблице "ЧЕГОТО для программы" вообще нужен первичный ключ?!1. Чтобы на это можно было сослаться
2. Чтобы это что-то можно было потом удалить
3. Чтобы не наплодить 33 варианта одного и того же чего-то
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903374
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bely1. Чтобы на это можно было сослаться
Таблица "ЧЕГОТО для программы" нужна для создания связи многие-ко-многим (для таблиц ЧЕГОТО и Программа). Для её работы достаточно, чтобы её столбцы были FK для столбцов других таблиц, которые они связывают.

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

Bely3. Чтобы не наплодить 33 варианта одного и того же чего-то
UNIQUE(ID программы, ID ЧЕГОТО)
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903456
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenТаблица "ЧЕГОТО для программы" нужна для создания связи многие-ко-многим (для таблиц ЧЕГОТО и Программа). Для её работы достаточно, чтобы её столбцы были FK для столбцов других таблиц, которые они связывают.А еще мы в таблице "Документ" хотим сослаться на СУЩЕСТВУЮЩУЮ пару "ЧЕГО-то" и "Программы".

Для этого нам надо ссылаться на уникальный ключ.

ArtDenBely3. Чтобы не наплодить 33 варианта одного и того же чего-то
UNIQUE(ID программы, ID ЧЕГОТО)PK = UNIQUE + Not NULL
зачем в связи Many to Many записи с NULL значениями "чего-то" или "программы"?

так что фактически - это PK.
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903513
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А-а... Я просмотрел. У автора сообщения есть ещё одна таблица - Документ. Я её и не приметил :)
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903558
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но в любом случае я не понял, что хочет автор темы :)
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903644
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenНо в любом случае я не понял, что хочет автор темы :)автор, похоже, хочет разделение справочника по горизонтали в зависимости от неких параметров. Что мешает ему сделать соответствующие вьюхи, остаётся непознанным пока.
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903725
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychArtDenНо в любом случае я не понял, что хочет автор темы :)автор, похоже, хочет разделение справочника по горизонтали в зависимости от неких параметров. Что мешает ему сделать соответствующие вьюхи, остаётся непознанным пока.

ну сколько еще раз повторить - выбрать толи с помощью вьюх толи программно нужные данные не проблема - проблема чтобы на уровне базы данных работала ссылочная целостность - чтобы было невозможно вручную по-ошибке или умышленно внести в Документ "ID ЧЕГОТО" не входящие в список "ЧЕГОТО для программы"!!!!!!
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903744
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sp...чтобы было невозможно вручную по-ошибке или умышленно внести в Документ "ID ЧЕГОТО" не входящие в список "ЧЕГОТО для программы"!!!!!!
Вот что оказывается тебе надо. Ну тогда Bely правильно ответил. Составной ключ тебе в помощь
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903750
ArtDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ArtDenВот что оказывается тебе надо. Ну тогда Bely правильно ответил. Составной ключ тебе в помощь
Хех. Так у тебя на твоём рисунке это и нарисовано. В чём проблема-то? Ограничь Документ при помощи FK и живи спокойно.
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35903782
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDenArtDenВот что оказывается тебе надо. Ну тогда Bely правильно ответил. Составной ключ тебе в помощь
Хех. Так у тебя на твоём рисунке это и нарисовано. В чём проблема-то? Ограничь Документ при помощи FK и живи спокойно.

Составной ключь не получицца - у меня таблица "ЧЕГОТО для программы" некорректно была нарисована - сорри

ЧЕГОТО для программы
-----------------------
ID ЧЕГОТО для программы
ID программы
ID ЧЕГОТО
......
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35904070
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если быть до конца точным то таблица выглядит так

ЧЕГОТО для программы
-----------------------
ID ЧЕГОТО для программы
ID программы
ID ЧЕГОТО
DateFrom
DateTo
.....


уникальный индекс в ней - (ID программы, ID ЧЕГОТО, DateFrom)
таблица имеет в качестве ключа "ID ЧЕГОТО для программы" из-за фреймворка который работает тока с одним полем ID и переделывать по другому уже низзя
...
Рейтинг: 0 / 0
использование ограниченного диапазона из справочник
    #35904274
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spЕсли быть до конца точным то таблица выглядит так

ЧЕГОТО для программы
-----------------------
ID ЧЕГОТО для программы
ID программы
ID ЧЕГОТО
DateFrom
DateTo
.....


уникальный индекс в ней - (ID программы, ID ЧЕГОТО, DateFrom)
таблица имеет в качестве ключа "ID ЧЕГОТО для программы" из-за фреймворка который работает тока с одним полем ID и переделывать по другому уже низзяНу....
Тогда таблица Документ будет выглядеть так:

Документ
-----------------
ID документа
ID ЧЕГОТО для программы - ссылаемся на суррогатный ключ в таблице Many to Many
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / использование ограниченного диапазона из справочник
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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