Спроектровать отношения..
От: Eugene Shark  
Дата: 05.04.05 11:52
Оценка:
Есть таблица

МАТЕРИАЛЫ(код, наименование)

есть шапка документа

ШАПКА(номер, дата, сумма)

нужно сделать таблицу

ТАБЛИЧНАЯ_ЧАСТЬ_ДОКУМЕНТА

так, чтобы в ней по строкам перечислялись материалы (много)
и связать ее с ШАПКОЙ (одной)

как сие реализовать?
Как будет выглядеть схема данных?

Зарнее сэнкс.
Re: Спроектровать отношения..
От: kallisto Украина  
Дата: 05.04.05 12:06
Оценка:
Здравствуйте, Eugene Shark, Вы писали:

... << RSDN@Home 1.1.4 beta 3 rev. 0>>
__________________________
Жизнь — это гармония Ян и Инь
Re: Спроектровать отношения..
От: pkarklin  
Дата: 05.04.05 12:09
Оценка:
Здравствуйте, Eugene Shark, Вы писали:

ES>Есть таблица


ES>МАТЕРИАЛЫ(код, наименование)


ES>есть шапка документа


ES>ШАПКА(номер, дата, сумма)


ES>нужно сделать таблицу


ES>ТАБЛИЧНАЯ_ЧАСТЬ_ДОКУМЕНТА


ES>так, чтобы в ней по строкам перечислялись материалы (много)

ES>и связать ее с ШАПКОЙ (одной)

ES>как сие реализовать?

ES>Как будет выглядеть схема данных?

ES>Зарнее сэнкс.


Если ШАПКА.номер является первичным ключем, то струткуа таюличной части может иметь вид:

КодМатериала (FK на МАТЕРИАЛЫ)
НомерИзШапки (FK на ШАПКА)
--остальные атрибуты сущности.

Если же поле ШАПКА.номер не может выступать в качестве PK, то создайте сурогатный ключ (identity или guid) в ШАПКА и по не му устанавливайте связь с табличной частью.
Re[2]: Спроектровать отношения..
От: Eugene Shark  
Дата: 05.04.05 12:41
Оценка:
Здравствуйте, kallisto, Вы писали:

K>Здравствуйте, Eugene Shark, Вы писали:


у меня не работает, когда я заполняю вторую строку в ТабличнойЧасти, с тем же Шапка_ID, что и в первой строке, то возникает нарушение условия уникальности. Но мне и надо, чтобы у меня для одной шапки был набор строк с материалами. Или я чего-то не понял?

ЗЫ: пробовал все это дело в Аксесе
Re[3]: Спроектровать отношения..
От: kallisto Украина  
Дата: 05.04.05 12:48
Оценка:
Здравствуйте, Eugene Shark, Вы писали:

ES>у меня не работает, когда я заполняю вторую строку в ТабличнойЧасти, с тем же Шапка_ID, что и в первой строке, то возникает нарушение условия уникальности. Но мне и надо, чтобы у меня для одной шапки был набор строк с материалами. Или я чего-то не понял?


ES>ЗЫ: пробовал все это дело в Аксесе


Т.е. Вы хотите чтобы в таблице Табл_Часть могли лежать вот такие данные

T_ID | Ш_ID | M_ID
-------------------
1 | 1 | 1
-------------------
2 | 1 | 1
-------------------
3 | 1 | 2
-------------------
4 | 1 | 2
-------------------

?
Если да, тогда можете сделать констреинт на уникальность, который будет содержать все три поля или вообще убрать поле T_ID и не вешать никаких констреинтов.

Или всё-таки необходима уникальность в сочетаниях foreign keys?

T_ID | Ш_ID | M_ID
-------------------
1 | 1 | 1
-------------------
2 | 1 | 2
-------------------
3 | 1 | 3
-------------------
4 | 1 | 4
-------------------

... << RSDN@Home 1.1.4 beta 3 rev. 0>>
__________________________
Жизнь — это гармония Ян и Инь
Re[4]: Спроектровать отношения..
От: Eugene Shark  
Дата: 05.04.05 12:55
Оценка:
Здравствуйте, kallisto, Вы писали:

K>Или всё-таки необходима уникальность в сочетаниях foreign keys?

K>

K>T_ID | Ш_ID | M_ID
K>-------------------
K>1 | 1 | 1
K>-------------------
K>2 | 1 | 2
K>-------------------
K>3 | 1 | 3
K>-------------------
K>4 | 1 | 4
K>-------------------


ага
Re[5]: Спроектровать отношения..
От: kallisto Украина  
Дата: 05.04.05 13:11
Оценка:
Здравствуйте, Eugene Shark, Вы писали:

ES>Здравствуйте, kallisto, Вы писали:


K>>Или всё-таки необходима уникальность в сочетаниях foreign keys?


ES>ага


Тогда Вам просто нужен уникальный констреинт на два вторых поля этой таблицы (он Вам обеспечит сохранение уникальности ключей, т.е. дубликатов не будет). Наличие первой колонки Tабл_Часть_ID не обязательно, решать Вам.

Хотелось бы узнать СУБД.
... << RSDN@Home 1.1.4 beta 3 rev. 0>>
__________________________
Жизнь — это гармония Ян и Инь
Re[3]: Спроектровать отношения..
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.04.05 05:48
Оценка:
Здравствуйте, Eugene Shark, Вы писали:
ES>у меня не работает, когда я заполняю вторую строку в ТабличнойЧасти, с тем же Шапка_ID, что и в первой строке, то возникает нарушение условия уникальности. Но мне и надо, чтобы у меня для одной шапки был набор строк с материалами. Или я чего-то не понял?
Да. Ты, похоже, сделал два независимых уникальных индекса по полям Шапка_ID и Материал_ID. А надо было один индекс:
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.