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

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

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

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

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

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

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

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

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

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

:) то есть, ограничение целостности на связь М:М со стороны одного из объектов: <=3.
И всего-то? Это ограничение целостности должно поддерживаться на уровне СУБД и описываться декларативно:) Завязывайте с "Р"СУБД:)
...
Рейтинг: 0 / 0
29.08.2010, 12:22
    #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
29.08.2010, 12:25
    #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]