|
|
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Разрабатываю структуру БД. Есть 2 сущности - первая "выписки", вторая "платежи", каждый платеж имеет родителя выписку, то есть он не может сущестовать без отца, в тоже время выписка может быть бездетной. Вопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 16:46 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Если нужна уникальность пары ID_Платежа - ID_Выписки , то есть для любой выписки не должно существовать платежей с одинаковым ID_Платежа, то можно сделать. Если ID_Платежа уникален, то не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 18:12 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Спасибо ID_Платежа уникален, поэтому включать не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 18:21 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Зачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата. Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?.. "пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 18:47 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Выписка - банковский документ подтверждающий прохождение платежа? IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 18:58 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
4d_monsterВыписка - банковский документ подтверждающий прохождение платежа? IMHO, Mon$te® Вопрос довольно тонкий. На выписках не ставится ни печать, ни подпись. Это справка, реестр операций по счету за определенный период. За подписанную выписку с печатью (если она вам нужна) часто надо платить дополнительные деньги. Документом является доставленное в банк-получатель платежное поручение, или распечатка его, подтвержденная подписью и штампом бухгалтера-операциониста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 10:25 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Дело в том что выписка может быть пустая, движения не было. Если мы не вводим такую сущность, то как мы узнаем была ли выписка влита в базу, если она пустая. В моем случае у вас будет одна запись в Выписках и 0 запсией в платежах. И я точно буду знать что в сиситеме уже есть пустая выписка и не буду ее пытаться вторично закачать. Отделять нужно еще потому, если например у выписки вдург измениться какое-то свойство так понял одну запись, а если ее включить в платежи, то соотвественно придеться менять N записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 19:12 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
у меня просто 30 филиалов и у них по 3 банка (основной, местный, касса). Итого около 100 банков, соответсвенно 100 выписок в день. Выписку не в банке берет пользователь, а закачивает ее через клиент-банк в систему, совершенно бесплатно в своем формате недоступном для визуально восприятия виде. То есть выписка это скорее сущность внутренняя. И для контроля закачки я решил ее отделить от платежей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 19:22 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Система для финансового контроля вот тут можно почитать ТЗ http://]http://sql.ru/forum/actualthread.aspx?tid=234865 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 19:24 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
http://sql.ru/forum/actualthread.aspx?tid=234865 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 19:25 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Dogen 4d_monsterВыписка - банковский документ подтверждающий прохождение платежа? IMHO, Mon$te® Вопрос довольно тонкий. На выписках не ставится ни печать, ни подпись. Это справка, реестр операций по счету за определенный период. За подписанную выписку с печатью (если она вам нужна) часто надо платить дополнительные деньги. Документом является доставленное в банк-получатель платежное поручение, или распечатка его, подтвержденная подписью и штампом бухгалтера-операциониста. Угу... Только все с точностью до наоборот... Выписка - основной документ, в нормальных банках на него ставится печать и клиенту отдается только под роспись. Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ... (А ежели в Вашем банке ленятся и нарушают - сочувствую...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2005, 19:58 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
rmpВопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи" С моей точки зрения, безотносительно предметной области ответ таков: включать дополнительные поля в PK нужно тогда и только тогда, когда в этом есть явная необходимость (мягче - явное преимущество). В тех случаях, когда на первый взгляд преимуществ не видно, "обойтись" не "можно", а "нужно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 15:01 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
softwarer rmpВопрос такой стоит ли ID_Выписки делать помимо FK в таблице платежей еще и ключевым аттрибутом, или же можно обойтись сугубо FK без включения в группу ключевых атрибутов сущности "Платежи" С моей точки зрения, безотносительно предметной области ответ таков: включать дополнительные поля в PK нужно тогда и только тогда, когда в этом есть явная необходимость (мягче - явное преимущество). В тех случаях, когда на первый взгляд преимуществ не видно, "обойтись" не "можно", а "нужно". Тогда странно ведут себя разработчки ERWin в демонстрационном примере, они показывают диаграмму с сущностями до 10 полей в группе PK, (одно ID, а остальные FK), хотя явно видно, что это делать не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 15:25 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Я не знаю, что они хотели показать этим примером, может быть что-то специфическое. В целом ErWin мне весьма не нравится как продукт :)) Мне к сожалению довелось однажды поработать с такой базой. Впечатления отпадные; в запросе джойнятся три-четыре таблицы, для этого расписываются двадцать-тридцать связок полей. Запрос к восьми таблицам вообще необозрим :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 15:39 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2005, 20:16 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
.. ___ Угу... Только все с точностью до наоборот... Выписка - основной документ, в нормальных банках на него ставится печать и клиенту отдается только под роспись. Возможно, потому что вместе с выпиской выдаются и подтверждающие документы?.. .. ___ Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ... лень .. ___(А ежели в Вашем банке ленятся и нарушают - сочувствую...) По-всякому бывает. Банков не один видали. Изнутри и снаружи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 10:50 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Правило выбора, идентифицирующая связь или нет, очень простое: если в подчиненной таблице нет собственного уникального ключа и ключом или частью ключа является ключевые поля исходной таблицы, то связь идентифицирующая, во всех остальных случаях нет. ErWin – неплохой инструмент для проектирования небольших баз, обычно не более сотни таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 18:07 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Slider_spb Правило выбора, идентифицирующая связь или нет, очень простое: если в подчиненной таблице нет собственного уникального ключа и ключом или частью ключа является ключевые поля исходной таблицы, то связь идентифицирующая, во всех остальных случаях нет. ErWin - неплохой инструмент для проектирования небольших баз, обычно не более сотни таблиц. ? 8-() Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 04:56 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Dogen .. ___ Бухгалтер предприятия делает проводки не по платежке, а по банковской выписке (по крайней мере - должен так делать). Не верите - посмотрите ЦБ-шные инструкции и ПБУ... лень Охотно верю... :-))) Поделился бы ссылочками, НО на работе я появлюсь не раньше конца января. Пока что "общаюсь" исключительно через коммуникатор, а GPRS-трафик на Россию здесь чертовски дорог... ;-( Dogen .. ___(А ежели в Вашем банке ленятся и нарушают - сочувствую...) По-всякому бывает. Банков не один видали. Изнутри и снаружи :) Ни минунты не сомневаюсь... НО!!! Существующая устоявшаяся практика и ПРАВИЛА все-таки несколько разные вещи, согласитесь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 21:47 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
.. ___ Ни минунты не сомневаюсь... НО!!! Существующая устоявшаяся практика и ПРАВИЛА все-таки несколько разные вещи, согласитесь... Концептуально интересный вопрос. Практически мне это будет интересно в следующем году. Думаю все же, что разработчики большинства систем для малого бизнеса (разнообразные бухгалтерии и OLTP) решали этот вопрос как бог на душу положит - от выписки или от платежки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 10:56 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
DogenЗачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата. Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?.. "пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги" Вот тут Dogen абсолютно прав. Выписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки. Разве что имеет смысл хранить дату получения последней выписки клиентом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 12:10 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
gardenmanВыписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки. Спасибо, что напомнили про выписки больше чем за 1 день. Реально имеет смысл рассматривать понятие пачка документов или выписка только применительно к процессу ввода документов. Считать обороты по пачке - для самопроверки. Подшивать документы вместе с их перечнем. В таком вот аксепте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 12:14 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
gardenman DogenЗачем вообще нужна такая сущность как выписка ? В платежах уже присутствует дата. Если выписка - это документ, тогда надо говорить о документах и содержащихся в них проводках (или других документах?), а не о выписках. Вы что за систему проектируете?.. "пока вы смотрите свой телевизор, инопланетяне через него трахают вам мозги" Вот тут Dogen абсолютно прав. Выписку можно сделать за день, за месяц, за квартал, за год и вообще за любой период. Такчто никаких связей между выпиской и проводками быть не может, т.к. выписка - это всего навсего отчет по проводкам за определенный период в котором указаны входящий и исходящий остатки. Разве что имеет смысл хранить дату получения последней выписки клиентом. Не занимайтесь казуистикой... Платежное поручение (требование и т.п.) - документ, потдверждающий ПРОСЬБУ клиента к банку совершить операцию... (и не забываем по поле "срок платежа"!!!) Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней... Так что все очень просто. А что первичней - решайте сами, мне по-барабану... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 16:36 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
.. ___Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней... Так что все очень просто. А что первичней - решайте сами, мне по-барабану... Чего тогда влез, раз по барабану? Автору топика стоит рассмотреть возможную ситуацию, когда клиент получил несколько выписок, в которых повторяются операции - скажем, выписка за день и за месяц. Как и куда привязывать операцию по счету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:42 |
|
||
|
Стоит ли делать индентифицирующую связь
|
|||
|---|---|---|---|
|
#18+
Dogen .. ___Выписка - документ ПОТДВЕРЖДАЮЩИЙ проведенные операции с лицевым счетом клиента... И похрену за какое количество дней... Так что все очень просто. А что первичней - решайте сами, мне по-барабану... Чего тогда влез, раз по барабану? Уууу... Мы уже злимся и хамим потихоньку... Dogen.... Как и куда привязывать операцию по счету? Я и говорю - решайте сами господа IT-шники, Вам за это деньги и платят... :-) Я всего лишь объяснил бизнес-правила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 21:13 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33439411&tid=1545509]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
409ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 766ms |

| 0 / 0 |
