powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Может присутствовать в трех категориях, как показать в БД
17 сообщений из 17, страница 1 из 1
Может присутствовать в трех категориях, как показать в БД
    #36813749
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можна три атрибута ввести в таблице,но мне не нравится NULL, если категории только две. Ведь можна без этого? А где есть статейки про Нуллы в БД?
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813798
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может сделать таблицу (CatId, ObjectId) и поставить триггер на вставку, чтобы ид объекта не встречался более трех раз? Это хороший вариант?
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813804
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В СКЛ-92 триггеры есть, если нет, то должно решаться без них.
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813813
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolaМожет сделать таблицу (CatId, ObjectId) и поставить триггер на вставкутриггер не нужен
нужно ограничение целостности (первичный или уникальный ключ)
чтобы пара CatId, ObjectId не повторялась
и внешние ключи с полей CatId, ObjectId на соответствующие таблицы
тогда количество повторений ObjectId не сможет быть больше, чем количество записей в таблице категорий
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813832
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вув, да у нас этих категорий!!!! А надо чтобы повторений было не больше трех, т.е. один объект состоит не более чем в трьох категориях, а всего категорий маного. Уникьюе на эту пару - само собой.
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813854
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolaМожет сделать таблицу (CatId, ObjectId) и поставить триггер на вставку, чтобы ид объекта не встречался более трех раз? Это хороший вариант?

контролировать CatId + ObjectId по количеству записей в таблице соответствий почему бы и нет
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813855
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну еще поле "номер категории внутри объекта"
check constraint чтобы это поле было равно 1, 2, или 3
и еще один unique constraint чтобы внутри объекта не повторялось
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813863
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганельну еще поле "номер категории внутри объекта"
check constraint чтобы это поле было равно 1, 2, или 3
и еще один unique constraint чтобы внутри объекта не повторялось
ну т.е. три поля? и опять если объект состоит только в двух катах, то в третей будет NULL?
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813874
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yolaи опять если объект состоит только в двух катах, то в третей будет NULL?нет
записи с номером 3 не будет просто
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813879
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПаганельYolaи опять если объект состоит только в двух катах, то в третей будет NULL?нет
записи с номером 3 не будет просто
Тогда я не понял, что означает
поле "номер категории внутри объекта"
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36813885
Фотография Yola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тю, понял, ух заворот)))
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817582
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolaМожна три атрибута ввести в таблице,но мне не нравится NULL, если категории только две. Ведь можна без этого? А где есть статейки про Нуллы в БД?
А если в двух, или в семнадцати завтра будет?:)
У Вас два объекта (например, товар и категория товара) и связь между ними М:М.
В РМД нужно создать отдельную таблицу для хранения этой связи, о чем Вам здесь и объяснили.
Однако, лучше (как считал Кодд, и считает Дейт) создавать отдельную таблицу для связи любой мощности. Однако в РМД это просто невозможно:) Поэтому советую Вам просто отказаться от РМД и РСУБД для начала. И все у Вас будет хорошо:)
Заодно: наиболее перспективным решением является реализация классификатора как типа характеристики объекта (в РМД - типа атрибута отношения, или поля таблицы).
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817592
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред,

авторВув, да у нас этих категорий!!!! А надо чтобы повторений было не больше трех, т.е. один объект состоит не более чем в трьох категориях, а всего категорий маного. Уникьюе на эту пару - само собой.

туго восприняла прочитанное и сделала предположение о ваших намерениях
наименование темыассесснаименование темыБДнаименование темыMS SQLнаименование темыPERLнаименование темыAAAA

перевести в строку наименование темы,ассесс,БД,MS SQL
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817596
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

запрос z1 список основных покупателей товаров
Код: plaintext
1.
2.
3.
select товар,покупатель,sum(сумма) as сумма_общая
from tab1
group by товар,покупатель
order by товар,sum(сумма) 

перевести в товар,список_пок(не более 3)
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817599
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАБред,

авторВув, да у нас этих категорий!!!! А надо чтобы повторений было не больше трех, т.е. один объект состоит не более чем в трьох категориях, а всего категорий маного. Уникьюе на эту пару - само собой.

туго восприняла прочитанное и сделала предположение о ваших намерениях
наименование темыассесснаименование темыБДнаименование темыMS SQLнаименование темыPERLнаименование темыAAAA

перевести в строку наименование темы,ассесс,БД,MS SQL

:) то есть, ограничение целостности на связь М:М со стороны одного из объектов: <=3.
И всего-то? Это ограничение целостности должно поддерживаться на уровне СУБД и описываться декларативно:) Завязывайте с "Р"СУБД:)
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817609
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yola,

не смогла отыскать автора

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Public Function UnionStr2(Optional ID, Optional Fam)
Static IDOld, FamUnion
    If IsMissing(ID) Then
        IDOld = Empty
        Exit Function
    End If
    If IDOld <> ID Then
        IDOld = ID
        FamUnion = Null
    End If
    FamUnion = (FamUnion + ", ") & Fam
    UnionStr2 = FamUnion
End Function

запрос z2

Код: plaintext
1.
2.
select товар,UnionStr2(покупатель)
from z1
group by товар 
...
Рейтинг: 0 / 0
Может присутствовать в трех категориях, как показать в БД
    #36817612
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ПЕНСИОНЕРКА]Yola,

запрос z2 -исправление ошибки

select товар,UnionStr2(товар,покупатель)
from z1
group by товар
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Может присутствовать в трех категориях, как показать в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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