Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / запретить выбирать из справочника некоторые позиции / 12 сообщений из 12, страница 1 из 1
26.07.2014, 09:46
    #38706475
fewfewefe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Есть спрафочник

ref(id_ref PK, ...)

и таблица

t(id_t1 PK, entity_type, id_ref FK...);

строке с entity_type = 1 и entity_type = 2 можно ссылаться только на определенные подмножества s1 и s2 из таблицы ref. эти множества могут пересекаться. ничего в голову не приходит.
...
Рейтинг: 0 / 0
26.07.2014, 11:07
    #38706488
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Добавь entity_type в ключ ref.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.07.2014, 11:48
    #38706494
r34r34r
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Dimitry SibiryakovДобавь entity_type в ключ ref.


а как быть с тем, что подмножества s1, s2 могут пересекаться?
...
Рейтинг: 0 / 0
26.07.2014, 13:38
    #38706529
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
r34r34rа как быть с тем, что подмножества s1, s2 могут пересекаться?
У пересечения сделать это поле NULL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.07.2014, 14:01
    #38706540
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
fewfewefe,

приходит в голову только решение с дополнительным полем
ref
id_ref PKтекст entity_typesпримечание1наимен112наимен2доступно всем3наимен3доступно всем4наимен425наимен51,26наимен61,27наимен72,3

Код: vbnet
1.
2.
3.
4.
s1="select * from ref where len('' & entity_types)=0 "
s1=s1 & " or instr(entity_types," & me.[param1] & ")>0"
me.spisok.rowsource=s1
me.spisok.requery
...
Рейтинг: 0 / 0
26.07.2014, 18:36
    #38706618
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
fewfewefe,

Это отношение многие-ко-многим.
Лечится только созданием дополнительной таблицы
...
Рейтинг: 0 / 0
26.07.2014, 21:24
    #38706642
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
zeon11,


естественно, но как быть если часть строк

--для всех
--для 1 или 2 или 2
--кроме 1-2-3
...
Рейтинг: 0 / 0
27.07.2014, 18:05
    #38706809
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
ПЕНСИОНЕРКАzeon11,


естественно, но как быть если часть строк

--для всех
--для 1 или 2 или 2
--кроме 1-2-3

Тогда вторая таблица делается иерархической, где во главу иерархии ставится элемент "ВСЕ", с кодом, например 1.
в предельном случае таблица связи отношения многие-ко-многим связывает справочник с элементом "ВСЕ". Попробую проиллюстрировать:
К элементу "все категории" привязан весь справочник.
...
Рейтинг: 0 / 0
27.07.2014, 18:08
    #38706811
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Взрослые не получат полдник и спец.питание
...
Рейтинг: 0 / 0
27.07.2014, 18:12
    #38706813
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Матери тоже не получат полдник и спец.питание, так как для них не определён перечень приёмов пищи и они тогда попадают под раздачу в категорию взрослые.
...
Рейтинг: 0 / 0
27.07.2014, 18:17
    #38706815
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Роженицы - же не получат только спец.питание, т.к. хотя они и относятся к категории "взрослые", для них определён набор.
...
Рейтинг: 0 / 0
27.07.2014, 18:24
    #38706819
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запретить выбирать из справочника некоторые позиции
Всё это как раз:
1. плоская таблица справочник
2. Иерархический справочник
3. Таблица связи М-М.
4. Пригоршня SQL-запросов
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / запретить выбирать из справочника некоторые позиции / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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