|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Здравствуйте. Пишу GUI приложение, типа "Помощник юриста", с использованием SQLite. БД никогда не занимался, этому никогда не обучался. Поэтому не знаю, правильно ли всё делаю. По сути приложения. Есть два типа клиентов - физ. и юр. лицо. Я их выделил в две отдельные таблицы и связал с общей таблицей (id клиента и его категория). У клиента есть дела, я общую таблицу клиентов связал с таблицей Дела по id клиента. Дальше не знаю... Могут быть документы, аудио, фото, текст. При этом могут быть три владельца этих документов - документ по делу, документ клиента, документ пользователя. Как бы это все правильно связать то? Просят с меня схему, ну нарисовал её по быстрому в программе Valentina Studio, для наглядности, не все поля прописал. Но понимаю, что не правильно наверное. Вот, вообщем-то прошу совета, как это все разделить то и связать грамотно. Запросы будут строиться исходя из нажатия кнопок пользователем, так что проблем с отнесением к категориям владельца или типа документа не должно быть. Спасибо, сильно не пинайте ). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 16:51 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Могут быть документы, аудио, фото, текст. При этом могут быть три владельца этих документов - документ по делу, документ клиента, документ пользователя. Как бы это все правильно связать то? Тут надо смотреть на сущность этих документов и операции, которые с ними могут быть произведены в рамках бизнес-логики. Но скорее всего таки правильнее будет создать три отдельные таблицы документов, привязанные к делу, клиенту и пользователю соответственно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 17:06 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Идея такая, что пользователь может с внешнего носителя загрузить в БД файл (или фото со сканера). Это может быть допустим фото судебного дела (по конкретному делу из таблицы Дело), или может скан паспорта клиента (т.е. нет привязки к делу, только к клиенту) или документ лично пользователя (допустим аудио с семинара адвокатов). А приложение дает возможность фильтрации по клиенту, по делу, открытия этих документов прямо из окна приложения, поиска по дате добавления и т.д. А три отдельные таблицы это что имелось в виду? Умотался уже, не совсем соображу. Вообще в принципе от того, что есть сейчас можно отталкиваться или совсем ерунда получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 17:20 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_А три отдельные таблицы это что имелось в виду? create table "документы по делу" ... create table "документы клиента" ... create table "документы пользователя" ... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 17:25 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
А, спасибо. Но чет не догоняю немного. Вот у меня есть таблица clientDocs - ну вроде документы клиента и есть (id клиента + id документа) и casesDocs(id дела + id документа). id документа все уникальные и берутся из общей таблицы Documents... То есть эта промежуточная общая таблица не нужна будет, а сделать три и каждую связать с тремя таблицами по типу файла (audioDocs, photoDocs...)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 17:46 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_То есть эта промежуточная общая таблица не нужна будет, а сделать три и каждую связать с тремя таблицами по типу файла (audioDocs, photoDocs...)? Нет, таблицы по типу файла не нужны. Да и таблица Documents тоже сомнительна, хотя и радует поклонников нормальных форм. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 18:18 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Понял, спасибо. Была идея сделать так. Но вот взбрело в голову, что разделить по типу файла будет наглядней. У меня типа диплома проект, думал, что на схеме так будет комиссии понятней. Так то не по базам специальность, код сам копать сильно то и не будут на этот счет, думаю. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 18:49 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, вот переделал как посоветовали. Так вроде? Смущает таблица документы пользователя. Болтается одна без связей всяких. Но по логике так то вроде и должно... Никуда её не прицепить. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2020, 23:15 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Dimitry Sibiryakov, вот переделал как посоветовали. Так вроде? Изначальная схема была очень даже неплоха, а эта хуже - заметь, хотя бы, как у тебя в таблицах *Docs стали дублироваться поля. Если тебе пидется вводить еще один или несколько аттрибутов, которые должны быть у всех документов, то будешь каждый раз добавлять их во все таблицы. Или если появится еще один специфичный тип документов, для которого нужна будет отдельная таблица, то тоже надо будет копипастить. Поищи в интернете на тему представление наследования в реляционных БД - про это много написано, там несколько разных типовых подходов (TPH, TPC, TPT), у каждого свои плюс и минусы и надо выбирать по конкретной ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 01:42 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Дальше не знаю... Я в общем-то нашёл проблему :) Попробуйте отложить схему БД в сторону и само проектирование. Представьте, что делать будет кто-то другой. Сможете написать требования? Напишите. Вы удивитесь, но хорошо прописанные требования дадут вам 80% пользы, останется накидать схему. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 01:48 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat, спасибо за совет. Почитаю. Может что получится придумать, а то немного запутался уже. hVostt, да, спасибо, попробую расписать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2020, 15:05 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Нужно всего три таблицы, если не вдаваться в подробности: 1. Клиенты. 2. Дела клиентов. 3. Документы. В "Клиентах" живут все клиенты, и физики и юрики. Это правильно с точки зрения построения БД, так как это одна сущность. Тип клиента это просто поле в этой таблице. В "Делах клиентов" живут все дела. Связь с "Клиентами" по ID клиента. В "Документах" живут все документы дел. Не клиентов, а именно дел, так как документы прежде всего привязаны к делу. Связь с таблицей "Дела клиентов" по ID дела. Тип документа (аудио, текст, графика) - поле в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:36 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:35 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле? Это неправильно. Так не делают. Делают признак "юрик/физик" и от него пляшут. Три таблицы превращаются в одну. И т.д. и т.п. Короче, кругом удобство. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:46 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
KreatorXXI Vladimir_84_ Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле? Это неправильно. Так не делают. Делают признак "юрик/физик" и от него пляшут. Три таблицы превращаются в одну. И т.д. и т.п. Короче, кругом удобство. Я когда над этим думал, прошерстил и этот ресурс и другие на эту тему. Большинство сошлось на реализации как у меня. Потому что, в одной таблице половина полей будет не заполнена, в зависимости от типа клиента. Для юр. лица ОГРН или ИНН должны быть заполнены обязательно. А какой ОГРН у физ. лица, что тогда записывать туда для него? Это совершенно излишний атрибут. Какая-то солянка получится. По логике то да, это и то и то клиент, но исходя из предметной области сущности разные. Самолет и автомобиль то транспортные средства, но все же совершенно разные вещи. Да и ладно с этим, даже если б я в одну таблицу клиентов слил... У меня больше вопрос про таблицы документов исходя из их разных типов и разных владельцев. Как лучше все-таки разделить, по типу владельца? Исходя из первой схемы в голове складываются вроде запросы, достаточно просто получится вывести документы и по типу владельца и по типу файла... Приложение планируется однопользовательским, БД заполняться не будет быстро исходя из реалий. Поэтому какой-то сильной оптимизации и пр. не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:17 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле? Если у тебя будет две таблицы с клиентами (физики и юрики), то тебе нужно будет две таблицы на дела (отдельно физики и юрики) и то же самое с документами. Когда дойдёшь до построения форм, отчётов и поиска, то сразу поймёшь, что такое вложенный и длинный SELECT, и что такое две одинаковые формы на одну сущность клиент. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:36 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Ведь по одной доверенности можно хоть в ста делах участвовать Нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:46 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_, Более "правильный" вариант - одна таблица "Клиенты", к ней таблица "Реквизиты клиента", а к ней таблица "Список реквизитов". Но тогда надо будет очень сильно заморачиваться с проектированием формы "Клиент". И хранить все реквизиты текстом, с дальнейшим преобразованием в нужный формат в программном коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:56 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Vladimir_84_Ведь по одной доверенности можно хоть в ста делах участвовать Нельзя. Ну как нельзя, если я этим занимаюсь =) Организация выдала доверенность на представление интересов в судах всех уровней и во всех гос. органах. И ходи с ней пока срок не закончится. Её же не забирают =) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:59 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P Vladimir_84_ Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле? Если у тебя будет две таблицы с клиентами (физики и юрики), то тебе нужно будет две таблицы на дела (отдельно физики и юрики) и то же самое с документами. Когда дойдёшь до построения форм, отчётов и поиска, то сразу поймёшь, что такое вложенный и длинный SELECT, и что такое две одинаковые формы на одну сущность клиент. Да не, реквизиты дела не зависят от типа клиента, там все унифицированно. Типа статус клиента (истец, ответчик...), категория дела (гражданское, административное...), текстовое поле суть дела... Так что таблица одна. Вообще как это должно выглядеть - пользователь нажимает кнопку "Документы", дальше выбирает категорию -> "аудио", дальше чьи, допустим из списка -> клиент, дальше может фильтровать по конкретному клиенту. Там прям в окне может файл прослушать, удалить, и пр. Так же с другими категориями владельца файла и категориями файла. Допустим для фото будет предпросмотр прям в окне интерфейса приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:06 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P Vladimir_84_, Более "правильный" вариант - одна таблица "Клиенты", к ней таблица "Реквизиты клиента", а к ней таблица "Список реквизитов". Но тогда надо будет очень сильно заморачиваться с проектированием формы "Клиент". И хранить все реквизиты текстом, с дальнейшим преобразованием в нужный формат в программном коде. Ну так наверное правильней, да. Но вот заморачиваться как раз не очень хочется. Я же говорю, я не спец по БД совсем, делаю как понимаю. Чтобы прям все по теории было сто процентов не обязательно. Смотрю на примеры тут же с форума, как другие делают и советуют. Мне главное, чтобы работало сейчас все =). Часть с клиентами и делами уже написана и протестирована, все ок. Ссылочная целостность по ключам проверяется, на уровне логики приложения тоже проверки есть. Мне документы прикрутить надо =) Когда приложение будет готово, если время будет, рефакторинг произведу если что, в этой части ("Клиент") тоже. Не могу сейчас тормознуть процесс и сильно переписывать код. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:14 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Ну как нельзя, если я этим занимаюсь =) Хорошо, что я никогда не буду Вашим клиентом. Нет риска, что Вы подадите в суд на Путина, проиграете и загоните меня в гроб, воспользовавшись доверенностью на вымогание задолженности в сто рублей. Vladimir_84_Для юр. лица ОГРН или ИНН должны быть заполнены обязательно. А какой ОГРН у физ. лица, что тогда записывать туда для него? Для чего? Если клиенты доверяют Вам, значит и Вы должны доверять клиентам. Поэтому можно не закладываться на то, что один клиент начнёт выдавать себя за другого. Нет необходимости поиска по 100500 атрибутам, нет смысла их хранить. Vladimir_84_Вообще как это должно выглядеть - пользователь нажимает кнопку "Документы", дальше выбирает категорию -> "аудио", дальше чьи, допустим из списка -> клиент, дальше может фильтровать по конкретному клиенту. Там прям в окне может файл прослушать, удалить, и пр. Зачем такой длинный путь? Это неэргономично. Карточка клиента, кнопка "Документы" откроет окно с полным списком его документов всех видов. Далее кнопка "посмотреть" откроет конкретный документ. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:20 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Мне документы прикрутить надо =) Просто сложите их в определённую папку и по кнопке "Документы" открывайте окно проводника. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:29 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ну в доверенности можно прописать конкретно по каким делам представляются интересы и где. Допустим пять штук в одном суде. Это к тому, что наверное не зачем хранить одну доверенность в пяти экземплярах в разных делах. Поэтому и хочется это отделить. Про ОГРН или ИНН. Это уникальный идентификатор. В общей таблице может быть десять ООО "Ромашка", но это будут разные юр. лица. Вот чтобы можно было их однозначно различать и надо указать одно из двух. Про длинный путь, я с вами соглашусь, так и будет. Интерфейс ещё продумывается. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:38 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Это уникальный идентификатор. В общей таблице может быть десять ООО "Ромашка", но это будут разные юр. лица. Вот чтобы можно было их однозначно различать и надо указать одно из двух. У Вас есть десять клиентов с одним названием и Вы способны их различить только по номеру? Не надо маяться теоретической фигнёй, делая приложение для конкретного собственного использования. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 13:43 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Переделал ещё раз. Подскажите пожалуйста кто разбирается, с этим можно работать, нормально так оставить? Не беря пока в расчет физ. и юр. лица в одной таблице или нет. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 16:53 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_, Да вполне норм, мало чем отличается от самой первоначальной, идея та же. Есть такая довольно старенькая, но весьма кошерная книга: https://www.martinfowler.com/books/ap.html (не знаю даже, выходила ли она на русском), думаю, тебе бы понравилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:14 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Vladimir_84_, Да вполне норм, мало чем отличается от самой первоначальной, идея та же. Есть такая довольно старенькая, но весьма кошерная книга: https://www.martinfowler.com/books/ap.html (не знаю даже, выходила ли она на русском), думаю, тебе бы понравилась. Спасибо. Постараюсь книгу найти, с английским для чтения проблем особых нет, разберусь. Знания конечно набирать надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 18:22 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Переделал ещё раз. Подскажите пожалуйста кто разбирается, с этим можно работать, нормально так оставить? Не беря пока в расчет физ. и юр. лица в одной таблице или нет. Спасибо. На первых же же клиентах база очень себя хорошо "покажет", ибо документы первого физика будут принадлежать первому юрику или наоборот, в зависимости от того, кого первым заведут. В общем проблема в том, что в таблицу "mixClient" попадают ID физиков и юриков и они будут совпадать! PS. Как насчёт индивидуальных предпринимателей? Они и физики, и юрики одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 10:13 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P, не-не-не, не так. Общая таблица mixClients это типа родительская, она просто генерирует id-шник (автоинкремент) и хранит категрию клиента. Она первична. В зависимости от этой категории id-шник присваивается или физ. или юр. Связь типа 1:0...1. Не пересекаются никогда ключи физ и юр. Написал триггеры для проверки поля категории в mixTable, так что id-шник сам куда надо попадет =) Не знаю, есть ли варианты кроме триггера проверить это на уровне СУБД. Хотя вообще исходя из действий пользователя (какая форма заполняется) ясно в какую таблицу пойдут данные. А ИП, не знаю, как пользователь решит. Может в юр. лица. Там поле организационно-правовая форма, их много, может ИП туда вписать. Или в физика, а в поле примечаний указать, что клиент ИП. Это не столь принципиально на данном этапе, надо будет можно добавить и ИП отдельно потом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 11:49 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ИП, не знаю, как пользователь решит. Может в юр. лица. Вот поэтому и не надо делить таблицу клиентов на две. Мне чисто любопытно: когда Вам клиент звонит, Вы начинаете спрашивать у него ИНН, ОКАТО и прочие зубодробительные числа чтобы понять кто это? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 12:54 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Вот поэтому и не надо делить таблицу клиентов на две Надо чётко формулировать сущности. И автор сделал это вполне неплохо. Dimitry Sibiryakov Мне чисто любопытно: когда Вам клиент звонит, Вы начинаете спрашивать у него ИНН, ОКАТО и прочие зубодробительные числа чтобы понять кто это? Мне чисто любопытно, Вы никогда не сталкивались с тем, что когда звонит Вася Пупкин, он может звонить как клиент-физик, а может - как должностное лицо клиента-юрика? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 13:20 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarerВы никогда не сталкивались с тем, что когда звонит Вася Пупкин, он может звонить как клиент-физик, а может - как должностное лицо клиента-юрика? Ни в том ни в другом случае я не стану спрашивать у него реквизиты, только "сегодня вы сам по себе или для босса?" Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 13:31 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Ну тогда можно и дела туда же, в одну. Признак ставишь, что это, дело, или клиент и какой =) Шучу. Я неспроста разделил, потому что долго думал как лучше, а исходя из предметной области это все-таки разные сущности. Этот форум весь перерыл на этот счет, другие... Пришел к выводу, что так оно лучше и понятней, многие так делают, и у многих так сделано уже давно. И там с пеной у рта друг другу доказывали свою точку зрения, только не победил никто =) Все при своих. Ну сделал так, может переделаю, так то в одной ещё проще будет. А инн по телефону никто естественно не спрашивает, поскольку номер в телефоне забит и ясно кто звонит ) Но преуменьшать значимость ОГРН или ИНН не стоит, поскольку ещё раз - это единственные уникальные номера по которым можно однозначно установить организацию. Раз приложение помогает вести учет, то почему бы эти реквизиты не вставить, чтобы легко можно их увидеть и воспользоваться. Так допустим поищите какое-нибудь ООО "Север" на сайте арбитражного суда, чтобы информацию о его делах найти, можно долго листать в поисках нужного. А так хоп, скопировал из таблицы и вставил в поиск на сайте. Да и в договоре всегда этот номер есть. Вот звонят допустим, продиктуйте ИНН, и надо лазить куда-то в бумаги, ещё куда искать его. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 13:35 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Признак ставишь, что это, дело, или клиент и какой =) Шучу. А зря. Тоже вполне легитимная структура БД. Vladimir_84_Но преуменьшать значимость ОГРН или ИНН не стоит, поскольку ещё раз - это единственные уникальные номера по которым можно однозначно установить организацию. Ок. Когда Вы последний раз говорили секретарше "найти мне клиента с ИНН 3167973299"? Vladimir_84_Раз приложение помогает вести учет, то почему бы эти реквизиты не вставить, чтобы легко можно их увидеть и воспользоваться. По нескольким причинам: 1. Надо следить за их актуальностью и обновлять при смене у клиента (да, да, они меняются, причём в самые неожиданные моменты, включая результат Ваших собственных действий). 2. Надо объяснять каждому клиенту зачем Вы храните эту информацию и кому её передаёте (сюрприз, но именно этого требует закон о персональных данных). Vladimir_84_А так хоп, скопировал из таблицы и вставил в поиск на сайте. Да и в договоре всегда этот номер есть. Вот звонят допустим, продиктуйте ИНН, и надо лазить куда-то в бумаги, ещё куда искать его. Так Вы и создаёте свою систему как раз для того, чтобы одной кнопкой можно было найти и открыть договор. То есть звонят - ткнул кнопку - договор открылся - вся информация там как на ладони, копируй на здоровье. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 13:47 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ладно, не пойму о чем спор. Это общедоступные данные, никакая это не тайна и не персональные сведения. Зайдите на сайт egrul.nalog.ru и про любую организацию найдете информацию, и про учредителей, и про адрес. И свой ИНН можете узнать, есть официальный сервис. Эти данные не меняются. У вас когда-нибудь менялся ИНН или СНИЛС? С чего бы? Да это в любом случае проблема клиента, если он не уведомил. Я же говорю, что данные эти могут понадобиться иногда , в частности привел пример с поиском на сайте "Картотека арбитражных дел". Там дела по всей России, зачем мне лезть в договор, листать его еще в конец самый, если у меня перед глазами окно с табличкой клиентов и там, допустим, название, огрн, телефон, мэйл. Зачем вообще тогда данные нужны, можно тогда записать "Фирма Ромашка, чувак такой со смешной прической и писклявым голосом", да и нормально, сразу же понятно о чем речь... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 14:07 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_У вас когда-нибудь менялся ИНН или СНИЛС? С чего бы? Ликвидация юр.лица переводом его имущества на совладельца. Да, это было лично у меня. Vladimir_84_зачем мне лезть в договор, листать его еще в конец самый, если у меня перед глазами окно с табличкой клиентов и там, допустим, название, огрн, телефон, мэйл. Чтобы наконец-то научиться составлять договоры, помещая важную информацию в начало, а воду - в конец? Или чтобы создать документ клиента произвольной формы с названием "текущие реквизиты"? Vladimir_84_Зачем вообще тогда данные нужны, можно тогда записать "Фирма Ромашка, чувак такой со смешной прической и писклявым голосом" ДА! Именно ответ на этот вопрос я и пытаюсь от вас получить. И нет, я задаю этот вопрос не от балды, он родился в результате трудного опыта разработки ИС. А для ваших двух таблиц у меня другой вопрос: поиск клиента предполагает, что Вы этого клиента не помните, включая того физик он или юрик. В какой из таблиц Вы будете его искать? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 14:28 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Я не спорю, что опыта разработки ИС у вас больше, чем у меня. У меня его вообще нет =) Я поэтому и вопрос задал, чтобы подсказали, чтобы научиться. У меня приложение однопользовательское, небольшое, не для целой юр. фирмы. В силу специфики работы адвоката, я знаю, что в год не будет там и сотни клиентов. Все дела специфичны и запоминаются, нет сложностей понять кого искать. А так окно разбито на два табличных представления, физ и юр. По кнопке ищется либо там, либо там. Ну если что два раза тыкнуть придется кнопку. Как бы вы это сделали? Планируется конечно больше функциональных возможностей в программе, это только часть фронта работ. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 15:57 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Как бы вы это сделали? Так, как, собственно, и делаю: просто каталог на диске, в нём подкаталоги для каждого клиента, где лежат документы клиента и подкаталоги дел (случаев), в которых лежат документы каждого случая. Всё. Никаких БД, никаких приложений с кнопками. Любой клиент и документ ищется и открывается одним даблкликом в проводнике или любом другом файловом менеджере. Сам каталог легко архивируется как резервная копия, сливающаяся на флэшку/внешний винт/облако/DVD. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 16:07 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ну ок, допустим так. Что касается хранения документов конечно можно так. Если я хочу всех клиентов просмотреть с какими-то реквизитами? И как узнать какому клиенту или делу принадлежит каталог (как они именуются если клиентов много), или о чем дело вообще (ну допустим иные участники дела)? Или тупо вывести статистику по категориям дел? Хочу допустим отчет по оплатам, сколько по каждому делу остаток... Информация о клиенте или деле значит все равно хранится в файле, так какая разница откуда информацию эту стянуть, или из файла или из базы... Еще хочу учет событий сделать, ну чтобы, допустим, решение суда загрузил, а приложение тебе напоминание - не забудь, через 5 дней у тебя срок на обжалование выходит и пр. Я уже вписался в разработку приложения, мне уже не сдать, я поэтому и спрашивал по структуре. Если бы сказали, что совсем все не так, ну переделывал бы. Говорю же, с БД дел вообще никогда не имел, пытаюсь разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 16:30 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Если я хочу всех клиентов просмотреть с какими-то реквизитами? Вариант а: хочешь - перехочешь. И нет, это не шутка. В моей практике не встречалось такой необходимости. Вариант б: поиск по файлам в Windows действует надёжно. Vladimir_84_И как узнать какому клиенту или делу принадлежит каталог (как они именуются если клиентов много), или о чем дело вообще (ну допустим иные участники дела)? Именно так они и именуются: "Фирма Ромашка, чувак такой со смешной прической и писклявым голосом". Этого достаточно чтобы узнать какому клиенту он принадлежит, не так ли? А для "иных участников" в деле есть специальный документ с названием "список подельников", разве нет?.. Vladimir_84_Хочу допустим отчет по оплатам, сколько по каждому делу остаток... У меня бухгалтерия велась отдельно от делопроизводства, что не мешало её экселевской табличке лежать в том же каталоге. Vladimir_84_какая разница откуда информацию эту стянуть, или из файла или из базы... В теории - никакой. Как только доходит до конкретного программирования - охренительная. Vladimir_84_чтобы, допустим, решение суда загрузил, а приложение тебе напоминание - не забудь, через 5 дней у тебя срок на обжалование выходит и пр Это задача органайзера. Гугловского/телефонного или любого другого. Vladimir_84_Я уже вписался в разработку приложения, мне уже не сдать Вписался - делай. Структура значения не имеет, её всегда можно переделать как только её косяки вылезут в виде геморроя. Главное - упорядочить мысли в голове, всё остальное приложится. Да, дзен звучит банально, но таки работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 17:47 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, =) Я понял вас. Так куда тогда простому прикладному программисту податься, раз все уже сделано до нас? ) Только если в науку тогда что-ли, и то если ума достаточно? ))) И хотелось то как раз сделать приложение "помощник", пусть не оптимальное, пусть кривенькое может где-то, но чтобы оттестировалось и работало. Вот, чтобы как раз без остальных программ, а в одном флаконе. Ладно, буду стараться, думать как сделать проще и лучше. В любом случае спасибо за советы и комментарии. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 18:12 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_Так куда тогда простому прикладному программисту податься, раз все уже сделано до нас? ) Хех! "Знал бы прикуп - жил бы в Сочи." Я-то кормлюсь в основном с тех, кто "хотел как раз сделать приложение, пусть не оптимальное, пусть кривенькое" за то, чтобы оно "оттестировалось и работало". Ну и местами продажей тех самых "остальных программ", которые, в отличии от, уже работают прямо сейчас, а не через год. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 18:26 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
В таблицу "MixClients" нужно добавить поле с наименованием клиента, по которому его будут искать. У такой схемы есть изъян - при появлении нового типа клиента (ИП) придётся менять структуру БД, добавляя новую таблицу и переписывая логику, которая определяет в какую таблицу заносить данные. Плюс добавлять новую форму, в которой будет редактироваться новый тип клиентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:07 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P У такой схемы есть изъян Это не изъян. Stanislav P и переписывая логику, которая определяет в какую таблицу заносить данные Зачем переписывать то, что надо просто выбросить если вдруг по недоразумению вообще реализовали? Stanislav P Плюс добавлять новую форму Когда "добавление новой формы" привязывается к "добавлению новой таблицы", становится ясно, что подразумевается работа на каком-то ужасе типа древних Oracle Forms. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:28 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Переделал ещё раз. Подскажите пожалуйста кто разбирается, с этим можно работать, нормально так оставить? все хрень, для начала так таблица contacts id PK тип (1 - юл, 2 - фл, 3 - ИП) ИНН + unique_index наименование/фио таблица cases id PK номер + unique_index описание таблица documents id PK id_contact (FK) id_case (FK) тип (1 - текст, 2 - видео, 3 - аудио) описание путь к файлу таблица case_participants id_case PK (FK) id_contact PK (FK) type (1 - истец, 2 - ответчик, 3 - третье лицо) а дальше - после уточнения описания нюансов предметной области ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 11:39 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Stanislav P У такой схемы есть изъян - при появлении нового типа клиента (ИП) придётся менять структуру БД, добавляя новую таблицу и переписывая логику, которая определяет в какую таблицу заносить данные. Плюс добавлять новую форму, в которой будет редактироваться новый тип клиентов. А если запихать все в TPH-схему, то ничего, как будто, менять не придется. На схеме типичный TPT и его единственный изъян это возможные тормоза по производительности при чтении (чтобы выбирать целиком сущности нужны джойны). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 11:40 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ В зависимости от этой категории id-шник присваивается или физ. или юр. Связь типа 1:0...1. Не пересекаются никогда ключи физ и юр. Написал триггеры для проверки поля категории в mixTable, так что id-шник сам куда надо попадет =) Не знаю, есть ли варианты кроме триггера проверить это на уровне СУБД. ппц, нафига на ровном месте создавать себе проблемы?? вот и разгребаешь потом говнокод Vladimir_84_ А ИП, не знаю, как пользователь решит. Может в юр. лица. Там поле организационно-правовая форма, их много, может ИП туда вписать. Или в физика, а в поле примечаний указать, что клиент ИП. Это не столь принципиально на данном этапе, надо будет можно добавить и ИП отдельно потом. о боже... нет, только не это, говнокод и шаловливые ручонки пользователей - адская смесь ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 11:54 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 о боже... нет, только не это, говнокод и шаловливые ручонки пользователей - адская смесь Говнокод это твое поле "наименование/фио". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:13 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Говнокод это твое поле "наименование/фио". нет, пока что (до уточнения требований) это KISS и YAGNI вот когда в требованиях появится, например выводить инициалы физ лица в отчете - тогда надо будет думать а сейчас - это самое простое и рабочее решение, одно поле на все, и во всех формах, отчетах, поисковых запросах и вообще везде-везде - не надо городить if/else/switch тем самым уменьшается кол-во кода на ЯП, уменьшается шанс бага, уменьшается кол-во тестов и т.д. и т.п. а это в свою очередь приводит к удешевлению разработки ПО и уменьшению сроков разработки ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:19 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 и во всех формах и отчетах - не надо городить if/else/switch ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:25 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 одно поле на все Надо вообще одну таблицу с одним полем на все сделать. Еще проще будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:27 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
нашел косяк сам у себя - ИНН + unique_index физ лицо и ИП имеют одинаковый ИНН, тогда так тип (1 - юл, 2 - фл, 3 - ИП) ИНН + unique_index (тип, ИНН) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:34 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Надо вообще одну таблицу с одним полем на все сделать. Еще проще будет. а это уже глупости ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:41 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77это уже глупости Нет, это всего лишь глупое утрирование уровня школоло: "меня так учили, значит это единственно правильный путь". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:00 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov 17-77это уже глупости Нет, это всего лишь глупое утрирование уровня школоло: "меня так учили, значит это единственно правильный путь". Я-то как раз указал сразу три разных "правильных пути", а 17-77 уперся в один единственно с его т.з. верный. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:11 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer а мне уже давно не смешно, двойные поля и таблицы проходят сквозь все ПО: 1. в select надо будет писать два join + where fizClient.name = @search_value OR yurClient.company = @search_value 2. с сортировкой в таблице по полю name будут проблемы альтернатива делать два отдельных поля поиска, два отдельных столбца или вообще две отдельных формы списка физиков и юриков, а это уже вызывает вопросы удобства для пользователя 3. при построении списка для drop-down-list на формах редактирования надо будет join + union 4. в данных для отчетов надо будет join + coalesce(fizClient.name, yurClient.company) 5. в бизнес логике на ЯП надо будет if/else/switch или прикручивать паттерны (ага, ради одного поля) на все это надо потратить уйму времени все еще смешно? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:17 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
тестируем дно ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:23 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Я-то как раз указал сразу три разных "правильных пути", а 17-77 уперся в один единственно с его т.з. верный. я обосновал свой выбор, есть конкретное рабочее решение, а не абстрактные размышления о плюсах и минусах наследования в БД это решение пока что не создает лишних проблем и ничего более сложного пока не требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:31 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 все еще смешно? Вы правы, тут скорее плакать надо. Не умеем написать view, поэтому надо везде писать coalesce и так далее в том же духе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:32 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer, какая разница где находится код, который все объединит? есть вариант вообще его не писать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:43 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
и вьюха не избавит от того, что придется писать две формы для создания/редактирования ФЛ/ЮЛ или применять if/else/switch, чтобы скрыть поля ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:58 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_, Владимир, Вам правильно подсказывают по поводу единой таблицы клиентов, ведь клиент может быть к примеру и ФЛ и ИП, даже встречалось, что одно ОГРН было у двух предприятий, одно было уже давно закрытым. Вижу такой вариант - создайте одну общую таблицу клиентов, справочник атрибутов (это м.б. ИНН, информация по документу, месту регистрации, юрид.адрес, ОГРН, КПП, СНИЛС, дата регистрации ЮЛ, бенифициар, рез/нерез, т.е. для каждого типа клиента - гибкий набор атрибутов, подключается оператором по мере необходимости ) и таблицу, где будут хранится заполненные оператором атрибуты клиента. Таблица для ведения дел - немер дела, далее привязываются клиенты из общей таблицы Клиентов, указывается его тип - истец/ответчик, привязываются доверенности, карточки образцов подписей, печатей и прочие основные доки. И возможно отдельная таблица с материалами дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:03 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 есть конкретное рабочее решение Отхожее место в виде ямы на улице это тоже "конкретное рабочее решение", когда про другие опции не знаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:11 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 softwarer, какая разница где находится код, который все объединит? есть вариант вообще его не писать Я же предложил уже вариант - одна таблица с одним большим полем. И одна форма с одним большим текстовым полем для ввода. Минимум затрат на разработку. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:14 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthatодна таблица с одним большим полем. Вообще-то с двумя, поскольку широкий список неудобен, но таки да, такой вариант тоже уместен. И я его предлагал выше гораздо раньше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:17 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat, да сколько уже можно, все три подхода - это две таблицы/два поля, на текущем этапе это только создает проблемы, а не решает их "знать про них" и "применять к месту" разные вещи и мое решение с легкостью конвертируется в tph и немного труднее в tpt/tpc, если это потребуется в будущем ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:21 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 какая разница где находится код, который все объединит? В данном случае эта разница просто показывает, что стенания про "куча лишней трудоёмкости, надо джойны в каждом комбобоксе писать" идёт исключительно от неумения пользоваться базовыми инструментами. Равно как - я вроде уже говорил - об этом же говорят высказывания о том, что количество таблиц связано с количеством форм. Что же касается этих решений, то основная практическая разница между ними в том, что в реляционных базах хранить мух отдельно от котлет, при необходимости собирая их, заметно удобнее, чем хранить вместе, при необходимости разбирая и потом заново собирая другим нужным способом. Решение с "одной общей таблицей" хуже расширяется, поэтому при близкой трудоёмкости его имеет смысл выбирать только тогда, когда есть твёрдая уверенность в том, что постановка задачи близка к окончательной и существенных доработок не будет. В противном случае Ваша экономия на спичках обернётся выбрасыванием и полным переписыванием как наиболее рациональным методом доработки решения под новые требования. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:33 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Я же предложил уже вариант - одна таблица с одним большим полем. И одна форма с одним большим текстовым полем для ввода. Минимум затрат на разработку. есть баланс между говнокодом, удобством и здравым смыслом - в этом решении баланс стремится к нулю решение с единым полем наименование/фио - это не по канонам, но отсекает половину срока разработки, ты реально хочешь угробить в два раза больше времени лишь бы следовать идолу? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:37 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 все три подхода - это две таблицы/два поля Что за ересь. TPH - "table per hierarhy", TPC - "table per concrete type", TPT - "table per type". "В одну таблицу" из них это только TPH. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:47 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 решение с единым полем наименование/фио - это не по канонам, но отсекает половину срока разработки У тебя создание одного дополнительного поля в БД занимает столько же времени как вся остальная разработка? Ты его что, прямо в файлах базы бинарным редактором создаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 14:50 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer идёт исключительно от неумения пользоваться базовыми инструментами мне знакомы view, но я не хочу внедрять лишний компонент, когда он только что и делает - это решает выдуманные проблемы не забыть бы потом его доработать softwarer Решение с "одной общей таблицей" хуже расширяется пожалуй да, но никто не мешает в моем решении добавить рядом еще три таблицы ЮЛ с егрюл, ИП с огрнип и ФЛ с паспортом, когда они понадобятся, и волки сыты и овцы целы. старое ломать не придеться. fkthat "В одну таблицу" из них это только TPH. ну да, но этот вариант по канону подразумевает два поля - наименование для ЮЛ и фио для ФЛ, два поля - привет вьюха/if/else/switch/coalesce fkthat У тебя создание одного дополнительного поля в БД занимает столько же времени как вся остальная разработка? Ты его что, прямо в файлах базы бинарным редактором создаешь? а пробрасывать его везде в приложении кто будет? пушкин? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 16:34 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 а пробрасывать его везде в приложении кто будет? пушкин? метаданные ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 16:59 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 пожалуй да, но никто не мешает в моем решении добавить рядом еще три таблицы Веселье в Вашем решении начнётся, как только потребуется кинуть внешний ключ на юрика или разобрать "наименование" физика отдельно на фамилию, имя и отчество. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:17 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 ну да, но этот вариант по канону подразумевает два поля - наименование для ЮЛ и фио для ФЛ На самом деле три, т.к. еще нужен дискриминатор. 17-77 привет вьюха/if/else/switch/coalesce Если на клиенте используется ОРМ, то вообще ничего не нужно - давно уже все ОРМы прекрасно мепят подтипы в РБД на наследование классов в коде. Впрочем ладно, твоя взяла, говнокодь свой говнокод как тебе удобней, храни телефоны в полях для e-mail, а вес товара в полях для цены, все равно не мне с этим потом долбаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:20 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer Веселье в Вашем решении начнётся, как только потребуется кинуть внешний ключ на юрика или разобрать "наименование" физика отдельно на фамилию, имя и отчество. Так все ведь уповают, что "когда понадобится, тогда и сделаем", а на деле "когда понадобится" лепят поверх какой-нибудь костыль из полированной какашки "давайте тогда будем просто ФИО разделять на три части точкой с запятой". А потом пишут сюда же на форум "помогите, христа ради, написать мне такой-то запрос". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:25 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer, а тут я уже в каждом конкретном случае буду считать порождаемое кол-во костылей для того или иного решения и выберу наименьшее, ну или как-то так fkthat На самом деле три, т.к. еще нужен дискриминатор. оно у меня уже есть - поле тип fkthat Если на клиенте используется ОРМ, то вообще ничего не нужно - давно уже все ОРМы прекрасно мепят подтипы в РБД на наследование классов в коде. ага, и она сгенерит два класса, а теперь расскажи мне как ты будешь делать: 1. формы списков ЮЛ/ФЛ с фильтрацией, сколько у тебя их будет 2. формы для редактирования ЮЛ/ФЛ и сколько их у тебя будет 3. дроп-даун-лист для выбора истца в деле fkthat Впрочем ладно, твоя взяла, говнокодь свой говнокод как тебе удобней, храни телефоны в полях для e-mail, а вес товара в полях для цены, все равно не мне с этим потом долбаться. ээ нее, не передергивай, такого я не предлагал ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:34 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat Так все ведь уповают, что "когда понадобится, тогда и сделаем" Это не то чтобы плохое соображение. Вопрос в том, "а сможем ли мы нормально сделать, когда понадобится?". В данном случае в этом есть большие сомнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:35 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 ага, и она сгенерит два класса Она сгенерит три класса - один базовый с общими полями и два производных, каждый с полями специфичными именно для каждого из подтипа сущности. А не какое-то непонятное поле "не мышонок, не лягушка, а неведома зверушка" - то ли это название, то ли это ФИО поди разбери. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:40 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
вы не понимаете следующей штуки: 1. если вам понадобилось только в одном месте сделать ссылку только на ЮЛ, значит во всех остальных 10 местах нужна общая ссылка 2. тогда мое решение без доработок выдаст 1 костыль, а в случае с TPC будет 10 костылей 3. если мое решение расширить до TPT тремя таблицами (ЮЛ/ФЛ/ИП), то по идее можно сделать FK на ЮЛ в одном конкретном случае, но надо проверять, я такой фигней не страдал fkthat Она сгенерит три класса да пофик, в базовом будет только ИД, в ФЛ будет фио, в ЮЛ будет name как ты сделаешь формы и дроп даун? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:52 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthatхрани телефоны в полях для e-mail Вот это, кстати, очень интересный вопрос. Как понять, что "это поле для e-mail" если оно называется, например, "contact"? Прочитать мысли архитектора, который думал, что "контактовать клиента можно только по e-mail"?.. А делать если у человека больше одного мейла? А, нет, можете не отвечать, я знаю, это будут поля mail1, mail2, mail3, mail4, mail5. Ведь именно так предписывает первая нормальная форма. И ни в коем случае нельзя сомневаться, ведь может родиться ересь о неструктурированном поле "контактная информация", а это сделает написание спамобота, рассылающего всем клиентам оповещение об отпуске, очень сложным. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 17:52 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov это будут поля mail1, mail2, mail3, mail4, mail5 Конечно, нет, я их все в одно поле запишу, через тройной дефис (чтобы проще парсить было), и пару-тройку телефонов туда же до кучи Я недавно видел такую БД а-ля кастомной CRM, где так телефоны контактов хранились - через точку с запятой. При этом еще то что туда вводилось операторами вообще никак не проверялось и не форматировалось и там запросто можно было встретить какое-нибудь такое значение (прямо в поле "телефон"): "Иванов Иван Иваныч +7 (123) 4526-824; 234-5678" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 18:12 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Вот не заходил, сейчас глянул )) Как всегда споры развели. ) Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме... ИП... Ну так если что не сложно еще одну таблицу для ИП завести. Ведь одному id из общей таблицы будет соответствовать только одна запись в одной из конкретизированных таблиц. Вроде ничего лишнего, в отличие от одной таблицы. И не шибко хитрые запросы то получаются при таком подходе... Вопрос производительности остро не стоит. Что там еще было то... Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.), категория дела тоже (гражданское, уголовное...). В таблицах есть текстовое поле Notes, вот туда все что хочется дополнительно можно записать, типа "клиент - говнюк" или "сложно дозвониться, лучше писать смс", или доп. телефон и т.д. Поскольку одномоментно пользователю необходимо работать только с одним клиентом, и пользователь знает какой категории клиент, вот сделал отдельные графические отображения (View) для физ и юр, сортируется все средствами приложения по любому столбцу, соответственно поиск тоже или там, или там, по любому полю. Данные хранятся в модели (Model), вообщем схема "модель-вид". Классы разделены на интерфейс и внутреннюю логику, и так со всеми таблицами, которые нужно отобразить пользователю. Понятно, что практически любую задачу можно решить различными способами, поэтому и не жду, что все здесь к единому мнению придут. Уже начал делать так =) Ещё один момент просто, мне тут предложили сделать так, как на схеме ниже (часть только с клиентами). Не знаю, так лучше что-ли? Ну если брать в расчет, что такое разделение приемлемо и допускается (это я не к категорическим противникам этой идеи =)). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 11:14 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме... Да ничем он не плох. Он вполне правилен, разве что сущности неудачно названы. Вы обнаружите это, как только в программе появятся физ. лица, не являющиеся клиентами - например, какие-нибудь там "свидетели". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 11:38 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer, Не, сущностей больше не будет, всякие там лица в карточке дела нужны будут только для учета, ну типа, известны их фамилии, ну и в поле заметки можно о них что-нибудь написать если известно и необходимо. Допустим клиент Иванов, физ. лицо, в деле он истец. Ответчиком выступает некий Петров, вот он дал свой тел. номер для связи, ну там решить может миром вопрос, в поле Заметки можно номер занести. Мне этого Петрова вообщем отдельно учитывать не надо. Есть и есть в заметках. Спасибо. А вариант который мне предлагают усиленно, на схеме, что приложил, он хуже, лучше, или все равно? Мне просто как-то аргументировать надо, что хочу сделать как у меня =) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 11:47 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ А вариант который мне предлагают усиленно, на схеме, что приложил, он хуже, лучше, или все равно? На схеме определённо неправильны значки бесконечности. В остальном - можно назвать случаи, когда она чуть более удобна, можно назвать случаи, когда она чуть менее удобна, но в целом разница невелика. Я бы сказал так: вариант на схеме предпочтительнее в тех случаях, когда любой атрибут "клиента - физ. лица", являются либо атрибутом "клиента не физ. лица" либо атрибутом "физ. лица не клиента" (ну и про юриков аналогично). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 12:04 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer, все понял спасибо. Стрелочки это препод с учебы так нарисовала не верно )) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 12:18 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Вот не заходил, сейчас глянул )) Нет, не так. Надо: mix_client (id PK, client_type, ...) phys_client(id PK, ...) foreign key id references mix_client(id) yur_client(id PK, ...) foreign key id references mix_client(id) а у тебя выходит, что одно и тоже юр или физ лицо одновременно является несколькими базовыми "просто лицами". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 13:24 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat, спасибо. У меня в моей схеме, которая предыдущая так и сделано. А эту последнюю мне предложили, но я к ней не склоняюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 13:51 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ вот сделал отдельные графические отображения (View) для физ и юр что и требовалось доказать, время разработки х2 Vladimir_84_ Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.) не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент Vladimir_84_ Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме... и помнится там еще триггер какой-то был - это ты свинью подложил разработчику после тебя, прежде чем вносить изменения - надо будет со всем этим разобраться, костыль на костыле, нет чтобы попроще ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 14:53 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer 17-77 все еще смешно? Вы правы, тут скорее плакать надо. Не умеем написать view, поэтому надо везде писать coalesce и так далее в том же духе. С вьюшками другая проблема бывает. У меня все отчеты написаны поверх вью. И недавно получил: Код: sql 1. 2.
Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании). По сабжу. Есть ОДНА сущность - контрагент. Поэтому желательно создать ОДНУ таблицу, где будут храниться общие данные всех контрагентов - и юр лиц, и физиков. Можно сделать еще пару таблиц для атрибутов, специфических для каждого типа контрагентов... Но я бы так не делал. Нет каких то явных плюсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 15:45 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
s_ustinov Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании) Ну что я могу сказать. Можно ещё каждую неделю делать для каждой компании новый набор таблиц. s_ustinov Есть ОДНА сущность - контрагент. Это верно. s_ustinov Поэтому желательно создать ОДНУ таблицу, где будут А вот это уже не верно. Стоит подумать в сторону "Есть ДРУГАЯ сущность - физическое лицо. ТРЕТЬЯ сущность - организация". И так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 15:56 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
s_ustinov Есть ОДНА сущность - контрагент. Есть одна абстрактная сущность "Контрагент", а есть её подтипы, например "ИП", "Юрлицо", "Физлицо". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 16:43 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
softwarer s_ustinov Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании) Ну что я могу сказать. Можно ещё каждую неделю делать для каждой компании новый набор таблиц. Это навик так работает - так что все претензии к Микрософт. )) softwarer s_ustinov Есть ОДНА сущность - контрагент. Это верно. s_ustinov Поэтому желательно создать ОДНУ таблицу, где будут А вот это уже не верно. Стоит подумать в сторону "Есть ДРУГАЯ сущность - физическое лицо. ТРЕТЬЯ сущность - организация". И так далее. В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :) Но при решении конкретной задачи мы в любом случае пренебрегаем некоторыми деталями. И для описываемой ТС задачи, как мне кажется, подобными деталями можно пренебречь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 17:19 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat s_ustinov Есть ОДНА сущность - контрагент. Есть одна абстрактная сущность "Контрагент", а есть её подтипы, например "ИП", "Юрлицо", "Физлицо". Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях. Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 17:25 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
s_ustinov Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях. Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.). Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент - это и есть субтипизация. В IDEF1x для такого даже существует специальная нотация. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 17:45 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
fkthat s_ustinov Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях. Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.). Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент - это и есть субтипизация. В IDEF1x для такого даже существует специальная нотация. С чего вдруг Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент ? Вполне может быть физ лицо - юрист компании клиента (контактное лицо), который сам по себе контрагентом не является. Если уж создавать в базе сущности "Физ лицо" и "Юр лицо", то не как подтипы сущности "Контрагент", а как отдельные сущности. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 17:58 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
17-77 Vladimir_84_ вот сделал отдельные графические отображения (View) для физ и юр что и требовалось доказать, время разработки х2 Vladimir_84_ Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.) не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент Vladimir_84_ Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме... и помнится там еще триггер какой-то был - это ты свинью подложил разработчику после тебя, прежде чем вносить изменения - надо будет со всем этим разобраться, костыль на костыле, нет чтобы попроще Да, время разработки штука такая... Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица. Я одно представление что-ли сделаю со всеми полями и физ и юр, и где-то галочкой кто это? Ну смотреться это будет мне кажется не очень. Так что хоть и из одной таблицы, но придется выбирать информацию, чтобы клиенту показать, что надо заполнить. Так что тоже кодить. А исходя из предметной области скажу, что юристы с компьютерами тупые вообще, им покажи кучу полей, они заполнят что-нибудь, типа огрн для физ. лица. =) Шучу, но случайно можно тыкнуть не туда. Тут еще проверки надо ставить всякие или блокировать элементы ввода, так что не быстрее и не проще. Сам клиент выбирается из combobox-а, или не выбирается, если сразу после заполнения его карточки переходишь к новому делу. Я не стал все поля прописывать, мне подсказка по направлению нужна была. Триггеров не будет, я понял, не советуют. s_ustinov В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :) Но при решении конкретной задачи мы в любом случае пренебрегаем некоторыми деталями. И для описываемой ТС задачи, как мне кажется, подобными деталями можно пренебречь. Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно? И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть )) Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо. Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу). Вообще спасибо всем, я услышал, опыта прибавилось =) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 00:23 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
[quot Vladimir_84_#22168925] 17-77 что и требовалось доказать, время разработки х2 не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент и помнится там еще триггер какой-то был - это ты свинью подложил разработчику после тебя, прежде чем вносить изменения - надо будет со всем этим разобраться, костыль на костыле, нет чтобы попроще Да, время разработки штука такая... Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица со всеми полями, и физ и юр, и где-то галочкой кто это. Но придется все равно выбирать информацию, чтобы пользователю показать, что надо заполнить. Или оставить одно окно со всеми реквизитами... Смотреться это будет мне кажется не очень. Так что в любом случае кодить. А исходя из предметной области скажу, что юристы с компьютерами тупые вообще, им покажи кучу полей, они заполнят что-нибудь, типа огрн для физ. лица. =) Шучу, но случайно можно тыкнуть не туда. Тут еще проверки надо ставить всякие или блокировать элементы ввода, так что не быстрее и не проще. Сам клиент выбирается из combobox-а, или не выбирается, если сразу после заполнения его карточки переходишь к новому делу. Я не стал все поля прописывать, мне подсказка по направлению нужна была. Триггеров не будет, я понял, не советуют. s_ustinov В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :) Но при решении конкретной задачи мы в любом случае пренебрегаем некоторыми деталями. И для описываемой ТС задачи, как мне кажется, подобными деталями можно пренебречь. Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно? И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть )) Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо. Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу). Вообще спасибо всем, кто помог участием, поскольку с этой сферой я недавно только столкнулся, я всех услышал, опыта прибавилось =) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 00:40 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Не знаю, что за хрень с двумя сообщениями, извините. Кнопку удалить не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 01:03 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Спасибо ещё комрадам fkthat и software за информацию и ссылки и советы. Всё почитаю, если что смогу отстоять свою схему. У меня по плюсам выпуск, но раз вписался с базой... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 01:15 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица. Я одно представление что-ли сделаю со всеми полями и физ и юр, и где-то галочкой кто это? Ну смотреться это будет мне кажется не очень. Так что хоть и из одной таблицы, но придется выбирать информацию, чтобы клиенту показать, что надо заполнить. Так что тоже кодить. в моем варианте и быстро, и хорошо, и без галок, и без if/else/switch, и кодить меньше ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 08:46 |
|
Помощь с проектированием БД, клиенты, документы
|
|||
---|---|---|---|
#18+
Vladimir_84_ s_ustinov В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :) Но при решении конкретной задачи мы в любом случае пренебрегаем некоторыми деталями. И для описываемой ТС задачи, как мне кажется, подобными деталями можно пренебречь. Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно? И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть )) Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо. Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу). Вот именно. Одна таблица для клиентов, в которую будем заносить данные и юр лиц и физ лиц (в разные поля) - это достаточно для очень многих задач. Если сильно надо будет - потом можно сделать отдельные таблицы для физ лиц и для юр лиц, которые могут быть не только клиентами (то есть не подтипы, а отдельные сущности). А чтобы очень много не переписывать - сделать вью. Но для таких приложений это обычно избыточно - не надо переусложнять. Если нет реального кейса, для которого не хватает одной таблицы клиентов - и не надо усложнять схему БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 10:49 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1539843]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
133ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 481ms |
0 / 0 |