powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Стоит ли делать индентифицирующую связь
25 сообщений из 26, страница 1 из 2
Стоит ли делать индентифицирующую связь
    #33425635
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрабатываю структуру БД. Есть 2 сущности - первая "выписки", вторая "платежи", каждый платеж имеет родителя выписку, то есть он не может сущестовать без отца, в тоже время выписка может быть бездетной. Вопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи"
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33425857
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна уникальность пары ID_Платежа - ID_Выписки , то есть для любой выписки не должно существовать платежей с одинаковым ID_Платежа, то можно сделать.

Если ID_Платежа уникален, то не надо.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33425877
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ID_Платежа уникален, поэтому включать не буду.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33425923
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата.

Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?..

"пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги"
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33425950
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выписка - банковский документ подтверждающий прохождение платежа?

IMHO, Mon$te®
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33426689
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4d_monsterВыписка - банковский документ подтверждающий прохождение платежа?

IMHO, Mon$te®

Вопрос довольно тонкий. На выписках не ставится ни печать, ни подпись. Это справка, реестр операций по счету за определенный период. За подписанную выписку с печатью (если она вам нужна) часто надо платить дополнительные деньги. Документом является доставленное в банк-получатель платежное поручение, или распечатка его, подтвержденная подписью и штампом бухгалтера-операциониста.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428387
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что выписка может быть пустая, движения не было. Если мы не вводим такую сущность, то как мы узнаем была ли выписка влита в базу, если она пустая. В моем случае у вас будет одна запись в Выписках и 0 запсией в платежах. И я точно буду знать что в сиситеме уже есть пустая выписка и не буду ее пытаться вторично закачать. Отделять нужно еще потому, если например у выписки вдург измениться какое-то свойство так понял одну запись, а если ее включить в платежи, то соотвественно придеться менять N записей
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428404
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня просто 30 филиалов и у них по 3 банка (основной, местный, касса). Итого около 100 банков, соответсвенно 100 выписок в день. Выписку не в банке берет пользователь, а закачивает ее через клиент-банк в систему, совершенно бесплатно в своем формате недоступном для визуально восприятия виде. То есть выписка это скорее сущность внутренняя. И для контроля закачки я решил ее отделить от платежей
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428409
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Система для финансового контроля вот тут можно почитать ТЗ http://]http://sql.ru/forum/actualthread.aspx?tid=234865
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428412
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://sql.ru/forum/actualthread.aspx?tid=234865
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428453
.. ___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen 4d_monsterВыписка - банковский документ подтверждающий прохождение платежа?

IMHO, Mon$te®

Вопрос довольно тонкий. На выписках не ставится ни печать, ни подпись. Это справка, реестр операций по счету за определенный период. За подписанную выписку с печатью (если она вам нужна) часто надо платить дополнительные деньги. Документом является доставленное в банк-получатель платежное поручение, или распечатка его, подтвержденная подписью и штампом бухгалтера-операциониста.

Угу... Только все с точностью до наоборот... Выписка - основной документ, в нормальных банках на него ставится печать и клиенту отдается только под роспись. Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ... (А ежели в Вашем банке ленятся и нарушают - сочувствую...)
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428921
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rmpВопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи"
С моей точки зрения, безотносительно предметной области ответ таков: включать дополнительные поля в PK нужно тогда и только тогда, когда в этом есть явная необходимость (мягче - явное преимущество). В тех случаях, когда на первый взгляд преимуществ не видно, "обойтись" не "можно", а "нужно".
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428933
rmp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer rmpВопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи"
С моей точки зрения, безотносительно предметной области ответ таков: включать дополнительные поля в PK нужно тогда и только тогда, когда в этом есть явная необходимость (мягче - явное преимущество). В тех случаях, когда на первый взгляд преимуществ не видно, "обойтись" не "можно", а "нужно".

Тогда странно ведут себя разработчки ERWin в демонстрационном примере, они показывают диаграмму с сущностями до 10 полей в группе PK, (одно ID, а остальные FK), хотя явно видно, что это делать не нужно
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33428944
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю, что они хотели показать этим примером, может быть что-то специфическое. В целом ErWin мне весьма не нравится как продукт :))

Мне к сожалению довелось однажды поработать с такой базой. Впечатления отпадные; в запросе джойнятся три-четыре таблицы, для этого расписываются двадцать-тридцать связок полей. Запрос к восьми таблицам вообще необозрим :))
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33429136
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rmp
Тогда странно ведут себя разработчки ERWin в демонстрационном примере, они
показывают диаграмму с сущностями до 10 полей в группе PK, (одно ID, а
остальные FK), хотя явно видно, что это делать не нужно


1. Ну и что?
2. Там не один пример, не правда ли?
3. Если Вам ОЧЕНЬ НУЖНО быстро выбрать значения detail-записей, зная
значение идентификтора Master-Master-Master ("прадедушки", так сказать), то
идентифицирующая связь несомненно нужна.
Если Вам НУЖНО, "имея на руках" detail-запись, СРАЗУ узнать, кто ее
"пра-пра-Master", то такая связь тоже будет полезна. Ну, и плюс вариации по
этим двум темам.
Если Вы реализуете объектно-реляционное отображение, и реализуете систему
наследования по принципу "класс-таблица", то идентифицирующая связь полезна
для реализации связи "таблица=класс-предок" = "таблица=класс-потомок". В
последнем слечае идентифицирующая связи не обязательно порождает появление
каскадных ключей (пример для ErWin - связь типа "суб-категория").
4. Если Вы считаете, что в некоторых случаях (см. выше, например) Вам все же
нужно использовать идентифицирующие связи, то вовсе не обязательно, чтобы
появившиеся из-за этого СОСТАВНЫЕ первичные ключи использовались в качестве
внешних (о проблемах см. выше - то, что писал softwarer, не говоря о
громозкости по объему данных). В этом слечае стоит рассмотреть возможность
ввода в таблицу суррогатного первичного ключа .
Да и вообще - чем длиннее строка поиска, тем больше блоков данных придется
просмотреть при сканировании. Ну и что, что это индексы. Реализация операции
поиска по индексу все равно порождает (пусть диапазонное) сканирование.
Короче ключ - меньше блоков данных считывается с диска.
Кроме того, следует иметь в виду, что при коротких ключах у некоторых
индексов сокращается число уровней B*-деревьев, что, в общем случае, тоже
приводит к росту производительности.
А вопросы каскадного обновления? (Ну да, да -я тоже не понимаю, зачем менять
значение первичного ключа! Но бывают же исключения! Пример: Родительская
таблица "Страны", в качестве первичного ключа используется название страны.
Переименовываем "Украина" в "Хохляндия" Представляете, какая цепочка
операций обновления будет от таблицы родителя к таблицам - потомкам?
"Области" - "Города" - "Улицы" - "Дома" - "Жители" - и все меняй. Оно Вам
надо? Хотя, конечно, это - редкая операция).
То есть, если нет причины использовать такую связь - то не используйте ее.
5. Т.е., если нет возможности обойтись без идентифицирующей связи -
используйте ее. Но лишний раз задумайтесь о возможных сложностях. В
остальных случаях - не используйте ее.
6. ErWin - один из моих основных инструмент для проектирования БД. Полный
контроль над генерируемым скриптом, простота и наглядность. Плюс привычка
.
7. Можно почитать какую-нибудь книжку, написанную людьми, съевшими не одну
собаку на проектировании. :
= http://www.books.ru/shop/books/2724]Например


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33429977
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. ___
Угу... Только все с точностью до наоборот... Выписка - основной документ, в нормальных банках на него ставится печать и клиенту отдается только под роспись.
Возможно, потому что вместе с выпиской выдаются и подтверждающие документы?..

.. ___ Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ...
лень

.. ___(А ежели в Вашем банке ленятся и нарушают - сочувствую...)
По-всякому бывает. Банков не один видали. Изнутри и снаружи :)
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33431451
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правило выбора, идентифицирующая связь или нет, очень простое: если в подчиненной таблице нет собственного уникального ключа и ключом или частью ключа является ключевые поля исходной таблицы, то связь идентифицирующая, во всех остальных случаях нет. ErWin – неплохой инструмент для проектирования небольших баз, обычно не более сотни таблиц.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33434569
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slider_spb
Правило выбора, идентифицирующая связь или нет, очень простое: если в
подчиненной таблице нет собственного уникального ключа и ключом или частью
ключа является ключевые поля исходной таблицы, то связь идентифицирующая, во
всех остальных случаях нет. ErWin - неплохой инструмент для проектирования
небольших баз, обычно не более сотни таблиц.


? 8-()

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33439411
.. ___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen .. ___ Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ...
лень
Охотно верю... :-))) Поделился бы ссылочками, НО на работе я появлюсь не раньше конца января. Пока что "общаюсь" исключительно через коммуникатор, а GPRS-трафик на Россию здесь чертовски дорог... ;-(
Dogen .. ___(А ежели в Вашем банке ленятся и нарушают - сочувствую...)
По-всякому бывает. Банков не один видали. Изнутри и снаружи :)
Ни минунты не сомневаюсь... НО!!! Существующая устоявшаяся практика и ПРАВИЛА все-таки несколько разные вещи, согласитесь...
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33439996
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. ___
Ни минунты не сомневаюсь... НО!!! Существующая устоявшаяся практика и ПРАВИЛА все-таки несколько разные вещи, согласитесь...

Концептуально интересный вопрос. Практически мне это будет интересно в следующем году. Думаю все же, что разработчики большинства систем для малого бизнеса (разнообразные бухгалтерии и OLTP) решали этот вопрос как бог на душу положит - от выписки или от платежки.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33440311
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenЗачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата.

Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?..

"пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги"

Вот тут Dogen абсолютно прав. Выписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки.

Разве что имеет смысл хранить дату получения последней выписки клиентом.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33440327
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanВыписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки.
Спасибо, что напомнили про выписки больше чем за 1 день.

Реально имеет смысл рассматривать понятие пачка документов или выписка только применительно к процессу ввода документов. Считать обороты по пачке - для самопроверки. Подшивать документы вместе с их перечнем. В таком вот аксепте.
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33441397
.. ___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gardenman DogenЗачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата.

Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?..

"пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги"

Вот тут Dogen абсолютно прав. Выписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки.

Разве что имеет смысл хранить дату получения последней выписки клиентом.
Не занимайтесь казуистикой...
Платежное поручение (требование и т.п.) - документ, потдверждающий ПРОСЬБУ клиента к банку совершить операцию... (и не забываем по поле "срок платежа"!!!)
Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней...
Так что все очень просто. А что первичней - решайте сами, мне по-барабану...
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33441774
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. ___Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней...
Так что все очень просто. А что первичней - решайте сами, мне по-барабану...
Чего тогда влез, раз по барабану?

Автору топика стоит рассмотреть возможную ситуацию, когда клиент получил несколько выписок, в которых повторяются операции - скажем, выписка за день и за месяц. Как и куда привязывать операцию по счету?
...
Рейтинг: 0 / 0
Стоит ли делать индентифицирующую связь
    #33441996
.. ___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen .. ___Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней...
Так что все очень просто. А что первичней - решайте сами, мне по-барабану...
Чего тогда влез, раз по барабану?
Уууу... Мы уже злимся и хамим потихоньку...

Dogen.... Как и куда привязывать операцию по счету?
Я и говорю - решайте сами господа IT-шники, Вам за это деньги и платят... :-) Я всего лишь объяснил бизнес-правила.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Стоит ли делать индентифицирующую связь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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