powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помощь с проектированием БД, клиенты, документы
103 сообщений из 103, показаны все 5 страниц
Помощь с проектированием БД, клиенты, документы
    #39978451
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Пишу GUI приложение, типа "Помощник юриста", с использованием SQLite. БД никогда не занимался, этому никогда не обучался. Поэтому не знаю, правильно ли всё делаю.
По сути приложения. Есть два типа клиентов - физ. и юр. лицо. Я их выделил в две отдельные таблицы и связал с общей таблицей (id клиента и его категория).
У клиента есть дела, я общую таблицу клиентов связал с таблицей Дела по id клиента.
Дальше не знаю... Могут быть документы, аудио, фото, текст. При этом могут быть три владельца этих документов - документ по делу, документ клиента, документ пользователя.
Как бы это все правильно связать то? Просят с меня схему, ну нарисовал её по быстрому в программе Valentina Studio, для наглядности, не все поля прописал. Но понимаю, что не правильно наверное. Вот, вообщем-то прошу совета, как это все разделить то и связать грамотно. Запросы будут строиться исходя из нажатия кнопок пользователем, так что проблем с отнесением к категориям владельца или типа документа не должно быть. Спасибо, сильно не пинайте ).
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978457
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Могут быть документы, аудио, фото, текст. При этом могут быть три владельца этих
документов - документ по делу, документ клиента, документ пользователя.
Как бы это все правильно связать то?

Тут надо смотреть на сущность этих документов и операции, которые с ними могут быть
произведены в рамках бизнес-логики. Но скорее всего таки правильнее будет создать три
отдельные таблицы документов, привязанные к делу, клиенту и пользователю соответственно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978461
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идея такая, что пользователь может с внешнего носителя загрузить в БД файл (или фото со сканера). Это может быть допустим фото судебного дела (по конкретному делу из таблицы Дело), или может скан паспорта клиента (т.е. нет привязки к делу, только к клиенту) или документ лично пользователя (допустим аудио с семинара адвокатов). А приложение дает возможность фильтрации по клиенту, по делу, открытия этих документов прямо из окна приложения, поиска по дате добавления и т.д.
А три отдельные таблицы это что имелось в виду? Умотался уже, не совсем соображу. Вообще в принципе от того, что есть сейчас можно отталкиваться или совсем ерунда получается?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978466
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_А три отдельные таблицы это что имелось в виду?

create table "документы по делу" ...
create table "документы клиента" ...
create table "документы пользователя" ...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978470
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, спасибо. Но чет не догоняю немного. Вот у меня есть таблица clientDocs - ну вроде документы клиента и есть (id клиента + id документа) и casesDocs(id дела + id документа). id документа все уникальные и берутся из общей таблицы Documents... То есть эта промежуточная общая таблица не нужна будет, а сделать три и каждую связать с тремя таблицами по типу файла (audioDocs, photoDocs...)?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978481
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_То есть эта промежуточная общая таблица не нужна будет, а сделать три и каждую связать с
тремя таблицами по типу файла (audioDocs, photoDocs...)?

Нет, таблицы по типу файла не нужны.
Да и таблица Documents тоже сомнительна, хотя и радует поклонников нормальных форм.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978484
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, спасибо. Была идея сделать так. Но вот взбрело в голову, что разделить по типу файла будет наглядней. У меня типа диплома проект, думал, что на схеме так будет комиссии понятней. Так то не по базам специальность, код сам копать сильно то и не будут на этот счет, думаю. )
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978514
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, вот переделал как посоветовали. Так вроде? Смущает таблица документы пользователя. Болтается одна без связей всяких. Но по логике так то вроде и должно... Никуда её не прицепить.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978540
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
Dimitry Sibiryakov, вот переделал как посоветовали. Так вроде?

Изначальная схема была очень даже неплоха, а эта хуже - заметь, хотя бы, как у тебя в таблицах *Docs стали дублироваться поля. Если тебе пидется вводить еще один или несколько аттрибутов, которые должны быть у всех документов, то будешь каждый раз добавлять их во все таблицы. Или если появится еще один специфичный тип документов, для которого нужна будет отдельная таблица, то тоже надо будет копипастить. Поищи в интернете на тему представление наследования в реляционных БД - про это много написано, там несколько разных типовых подходов (TPH, TPC, TPT), у каждого свои плюс и минусы и надо выбирать по конкретной ситуации.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978541
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
Дальше не знаю...


Я в общем-то нашёл проблему :)
Попробуйте отложить схему БД в сторону и само проектирование.
Представьте, что делать будет кто-то другой.

Сможете написать требования?
Напишите.

Вы удивитесь, но хорошо прописанные требования дадут вам 80% пользы, останется накидать схему.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978646
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat, спасибо за совет. Почитаю. Может что получится придумать, а то немного запутался уже.
hVostt, да, спасибо, попробую расписать.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978795
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно всего три таблицы, если не вдаваться в подробности:
1. Клиенты.
2. Дела клиентов.
3. Документы.

В "Клиентах" живут все клиенты, и физики и юрики. Это правильно с точки зрения построения БД, так как это одна сущность. Тип клиента это просто поле в этой таблице.
В "Делах клиентов" живут все дела. Связь с "Клиентами" по ID клиента.
В "Документах" живут все документы дел. Не клиентов, а именно дел, так как документы прежде всего привязаны к делу. Связь с таблицей "Дела клиентов" по ID дела. Тип документа (аудио, текст, графика) - поле в таблице.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978847
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978854
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле?

Это неправильно. Так не делают. Делают признак "юрик/физик" и от него пляшут. Три таблицы превращаются в одну. И т.д. и т.п. Короче, кругом удобство.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978876
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI
Vladimir_84_
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле?

Это неправильно. Так не делают. Делают признак "юрик/физик" и от него пляшут. Три таблицы превращаются в одну. И т.д. и т.п. Короче, кругом удобство.


Я когда над этим думал, прошерстил и этот ресурс и другие на эту тему. Большинство сошлось на реализации как у меня. Потому что, в одной таблице половина полей будет не заполнена, в зависимости от типа клиента. Для юр. лица ОГРН или ИНН должны быть заполнены обязательно. А какой ОГРН у физ. лица, что тогда записывать туда для него? Это совершенно излишний атрибут. Какая-то солянка получится. По логике то да, это и то и то клиент, но исходя из предметной области сущности разные. Самолет и автомобиль то транспортные средства, но все же совершенно разные вещи. Да и ладно с этим, даже если б я в одну таблицу клиентов слил... У меня больше вопрос про таблицы документов исходя из их разных типов и разных владельцев. Как лучше все-таки разделить, по типу владельца? Исходя из первой схемы в голове складываются вроде запросы, достаточно просто получится вывести документы и по типу владельца и по типу файла... Приложение планируется однопользовательским, БД заполняться не будет быстро исходя из реалий. Поэтому какой-то сильной оптимизации и пр. не требуется.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978896
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir_84_
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле?


Если у тебя будет две таблицы с клиентами (физики и юрики), то тебе нужно будет две таблицы на дела (отдельно физики и юрики) и то же самое с документами. Когда дойдёшь до построения форм, отчётов и поиска, то сразу поймёшь, что такое вложенный и длинный SELECT, и что такое две одинаковые формы на одну сущность клиент.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978904
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Ведь по одной доверенности можно хоть в ста делах участвовать

Нельзя.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978911
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir_84_,
Более "правильный" вариант - одна таблица "Клиенты", к ней таблица "Реквизиты клиента", а к ней таблица "Список реквизитов". Но тогда надо будет очень сильно заморачиваться с проектированием формы "Клиент". И хранить все реквизиты текстом, с дальнейшим преобразованием в нужный формат в программном коде.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978914
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Vladimir_84_Ведь по одной доверенности можно хоть в ста делах участвовать

Нельзя.

Ну как нельзя, если я этим занимаюсь =) Организация выдала доверенность на представление интересов в судах всех уровней и во всех гос. органах. И ходи с ней пока срок не закончится. Её же не забирают =)
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978923
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P
Vladimir_84_
Stanislav P, разделение физ. и юр. лиц оправдано. Слишком разные у них реквизиты, которые важны. У физ. допустим Ф, И, О + дата рождения, а у юр. наименование (и то не обязательно), ОГРН или ИНН. Только по этим реквизитам можно однозначно идентифицировать клиента. Эти поля должны быть заполнены обязательно. Достичь этого имея одну общую таблицу невозможно. А документы не только к делу относятся. Допустим скан паспорта клиента физ. лица или скан доверенности. Эти документы должны храниться в одном экземпляре не зависимо от дела. Ведь по одной доверенности можно хоть в ста делах участвовать, а зачем тогда этот документ дублировать в каждом деле?


Если у тебя будет две таблицы с клиентами (физики и юрики), то тебе нужно будет две таблицы на дела (отдельно физики и юрики) и то же самое с документами. Когда дойдёшь до построения форм, отчётов и поиска, то сразу поймёшь, что такое вложенный и длинный SELECT, и что такое две одинаковые формы на одну сущность клиент.


Да не, реквизиты дела не зависят от типа клиента, там все унифицированно. Типа статус клиента (истец, ответчик...), категория дела (гражданское, административное...), текстовое поле суть дела... Так что таблица одна.
Вообще как это должно выглядеть - пользователь нажимает кнопку "Документы", дальше выбирает категорию -> "аудио", дальше чьи, допустим из списка -> клиент, дальше может фильтровать по конкретному клиенту. Там прям в окне может файл прослушать, удалить, и пр. Так же с другими категориями владельца файла и категориями файла. Допустим для фото будет предпросмотр прям в окне интерфейса приложения.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978929
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P
Vladimir_84_,
Более "правильный" вариант - одна таблица "Клиенты", к ней таблица "Реквизиты клиента", а к ней таблица "Список реквизитов". Но тогда надо будет очень сильно заморачиваться с проектированием формы "Клиент". И хранить все реквизиты текстом, с дальнейшим преобразованием в нужный формат в программном коде.

Ну так наверное правильней, да. Но вот заморачиваться как раз не очень хочется. Я же говорю, я не спец по БД совсем, делаю как понимаю. Чтобы прям все по теории было сто процентов не обязательно. Смотрю на примеры тут же с форума, как другие делают и советуют. Мне главное, чтобы работало сейчас все =). Часть с клиентами и делами уже написана и протестирована, все ок. Ссылочная целостность по ключам проверяется, на уровне логики приложения тоже проверки есть. Мне документы прикрутить надо =) Когда приложение будет готово, если время будет, рефакторинг произведу если что, в этой части ("Клиент") тоже. Не могу сейчас тормознуть процесс и сильно переписывать код.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978933
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Ну как нельзя, если я этим занимаюсь =)

Хорошо, что я никогда не буду Вашим клиентом. Нет риска, что Вы подадите в суд на Путина,
проиграете и загоните меня в гроб, воспользовавшись доверенностью на вымогание
задолженности в сто рублей.

Vladimir_84_Для юр. лица ОГРН или ИНН должны быть заполнены обязательно. А какой ОГРН у физ. лица, что
тогда записывать туда для него?
Для чего? Если клиенты доверяют Вам, значит и Вы должны доверять клиентам. Поэтому можно
не закладываться на то, что один клиент начнёт выдавать себя за другого. Нет необходимости
поиска по 100500 атрибутам, нет смысла их хранить.

Vladimir_84_Вообще как это должно выглядеть - пользователь нажимает кнопку "Документы", дальше
выбирает категорию -> "аудио", дальше чьи, допустим из списка -> клиент, дальше может
фильтровать по конкретному клиенту. Там прям в окне может файл прослушать, удалить, и пр.

Зачем такой длинный путь? Это неэргономично. Карточка клиента, кнопка "Документы" откроет
окно с полным списком его документов всех видов. Далее кнопка "посмотреть" откроет
конкретный документ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978937
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Мне документы прикрутить надо =)

Просто сложите их в определённую папку и по кнопке "Документы" открывайте окно проводника.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978942
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Ну в доверенности можно прописать конкретно по каким делам представляются интересы и где. Допустим пять штук в одном суде. Это к тому, что наверное не зачем хранить одну доверенность в пяти экземплярах в разных делах. Поэтому и хочется это отделить.
Про ОГРН или ИНН. Это уникальный идентификатор. В общей таблице может быть десять ООО "Ромашка", но это будут разные юр. лица. Вот чтобы можно было их однозначно различать и надо указать одно из двух.
Про длинный путь, я с вами соглашусь, так и будет. Интерфейс ещё продумывается. Спасибо.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39978947
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Это уникальный идентификатор. В общей таблице может быть десять ООО "Ромашка", но это
будут разные юр. лица. Вот чтобы можно было их однозначно различать и надо указать одно из
двух.

У Вас есть десять клиентов с одним названием и Вы способны их различить только по номеру?

Не надо маяться теоретической фигнёй, делая приложение для конкретного собственного
использования.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979098
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переделал ещё раз. Подскажите пожалуйста кто разбирается, с этим можно работать, нормально так оставить? Не беря пока в расчет физ. и юр. лица в одной таблице или нет. Спасибо.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979136
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_,

Да вполне норм, мало чем отличается от самой первоначальной, идея та же. Есть такая довольно старенькая, но весьма кошерная книга: https://www.martinfowler.com/books/ap.html (не знаю даже, выходила ли она на русском), думаю, тебе бы понравилась.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979142
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat
Vladimir_84_,

Да вполне норм, мало чем отличается от самой первоначальной, идея та же. Есть такая довольно старенькая, но весьма кошерная книга: https://www.martinfowler.com/books/ap.html (не знаю даже, выходила ли она на русском), думаю, тебе бы понравилась.

Спасибо. Постараюсь книгу найти, с английским для чтения проблем особых нет, разберусь. Знания конечно набирать надо.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979318
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir_84_
Переделал ещё раз. Подскажите пожалуйста кто разбирается, с этим можно работать, нормально так оставить? Не беря пока в расчет физ. и юр. лица в одной таблице или нет. Спасибо.

На первых же же клиентах база очень себя хорошо "покажет", ибо документы первого физика будут принадлежать первому юрику или наоборот, в зависимости от того, кого первым заведут. В общем проблема в том, что в таблицу "mixClient" попадают ID физиков и юриков и они будут совпадать!

PS. Как насчёт индивидуальных предпринимателей? Они и физики, и юрики одновременно.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979370
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P, не-не-не, не так. Общая таблица mixClients это типа родительская, она просто генерирует id-шник (автоинкремент) и хранит категрию клиента. Она первична. В зависимости от этой категории id-шник присваивается или физ. или юр. Связь типа 1:0...1. Не пересекаются никогда ключи физ и юр. Написал триггеры для проверки поля категории в mixTable, так что id-шник сам куда надо попадет =) Не знаю, есть ли варианты кроме триггера проверить это на уровне СУБД. Хотя вообще исходя из действий пользователя (какая форма заполняется) ясно в какую таблицу пойдут данные.
А ИП, не знаю, как пользователь решит. Может в юр. лица. Там поле организационно-правовая форма, их много, может ИП туда вписать. Или в физика, а в поле примечаний указать, что клиент ИП. Это не столь принципиально на данном этапе, надо будет можно добавить и ИП отдельно потом.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979413
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_ИП, не знаю, как пользователь решит. Может в юр. лица.

Вот поэтому и не надо делить таблицу клиентов на две.

Мне чисто любопытно: когда Вам клиент звонит, Вы начинаете спрашивать у него ИНН, ОКАТО и
прочие зубодробительные числа чтобы понять кто это?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979439
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Вот поэтому и не надо делить таблицу клиентов на две

Надо чётко формулировать сущности. И автор сделал это вполне неплохо.

Dimitry Sibiryakov
Мне чисто любопытно: когда Вам клиент звонит, Вы начинаете спрашивать у него ИНН, ОКАТО и прочие зубодробительные числа чтобы понять кто это?

Мне чисто любопытно, Вы никогда не сталкивались с тем, что когда звонит Вася Пупкин, он может звонить как клиент-физик, а может - как должностное лицо клиента-юрика?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979444
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВы никогда не сталкивались с тем, что когда звонит Вася Пупкин, он может звонить как
клиент-физик, а может - как должностное лицо клиента-юрика?

Ни в том ни в другом случае я не стану спрашивать у него реквизиты, только "сегодня вы сам
по себе или для босса?"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979448
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, Ну тогда можно и дела туда же, в одну. Признак ставишь, что это, дело, или клиент и какой =) Шучу. Я неспроста разделил, потому что долго думал как лучше, а исходя из предметной области это все-таки разные сущности. Этот форум весь перерыл на этот счет, другие... Пришел к выводу, что так оно лучше и понятней, многие так делают, и у многих так сделано уже давно. И там с пеной у рта друг другу доказывали свою точку зрения, только не победил никто =) Все при своих. Ну сделал так, может переделаю, так то в одной ещё проще будет. А инн по телефону никто естественно не спрашивает, поскольку номер в телефоне забит и ясно кто звонит ) Но преуменьшать значимость ОГРН или ИНН не стоит, поскольку ещё раз - это единственные уникальные номера по которым можно однозначно установить организацию. Раз приложение помогает вести учет, то почему бы эти реквизиты не вставить, чтобы легко можно их увидеть и воспользоваться. Так допустим поищите какое-нибудь ООО "Север" на сайте арбитражного суда, чтобы информацию о его делах найти, можно долго листать в поисках нужного. А так хоп, скопировал из таблицы и вставил в поиск на сайте. Да и в договоре всегда этот номер есть. Вот звонят допустим, продиктуйте ИНН, и надо лазить куда-то в бумаги, ещё куда искать его.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979456
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Признак ставишь, что это, дело, или клиент и какой =) Шучу.

А зря. Тоже вполне легитимная структура БД.

Vladimir_84_Но преуменьшать значимость ОГРН или ИНН не стоит, поскольку ещё раз - это единственные
уникальные номера по которым можно однозначно установить организацию.

Ок. Когда Вы последний раз говорили секретарше "найти мне клиента с ИНН 3167973299"?

Vladimir_84_Раз приложение помогает вести учет, то почему бы эти реквизиты не вставить, чтобы легко
можно их увидеть и воспользоваться.

По нескольким причинам:
1. Надо следить за их актуальностью и обновлять при смене у клиента (да, да, они меняются,
причём в самые неожиданные моменты, включая результат Ваших собственных действий).
2. Надо объяснять каждому клиенту зачем Вы храните эту информацию и кому её передаёте
(сюрприз, но именно этого требует закон о персональных данных).

Vladimir_84_А так хоп, скопировал из таблицы и вставил в поиск на сайте. Да и в договоре всегда этот
номер есть. Вот звонят допустим, продиктуйте ИНН, и надо лазить куда-то в бумаги, ещё куда
искать его.

Так Вы и создаёте свою систему как раз для того, чтобы одной кнопкой можно было найти и
открыть договор. То есть звонят - ткнул кнопку - договор открылся - вся информация там как
на ладони, копируй на здоровье.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979469
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, ладно, не пойму о чем спор.
Это общедоступные данные, никакая это не тайна и не персональные сведения. Зайдите на сайт egrul.nalog.ru и про любую организацию найдете информацию, и про учредителей, и про адрес. И свой ИНН можете узнать, есть официальный сервис. Эти данные не меняются. У вас когда-нибудь менялся ИНН или СНИЛС? С чего бы? Да это в любом случае проблема клиента, если он не уведомил. Я же говорю, что данные эти могут понадобиться иногда , в частности привел пример с поиском на сайте "Картотека арбитражных дел". Там дела по всей России, зачем мне лезть в договор, листать его еще в конец самый, если у меня перед глазами окно с табличкой клиентов и там, допустим, название, огрн, телефон, мэйл. Зачем вообще тогда данные нужны, можно тогда записать "Фирма Ромашка, чувак такой со смешной прической и писклявым голосом", да и нормально, сразу же понятно о чем речь...
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979480
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_У вас когда-нибудь менялся ИНН или СНИЛС? С чего бы?

Ликвидация юр.лица переводом его имущества на совладельца. Да, это было лично у меня.

Vladimir_84_зачем мне лезть в договор, листать его еще в конец самый, если у меня перед глазами окно с
табличкой клиентов и там, допустим, название, огрн, телефон, мэйл.

Чтобы наконец-то научиться составлять договоры, помещая важную информацию в начало, а воду
- в конец? Или чтобы создать документ клиента произвольной формы с названием "текущие
реквизиты"?

Vladimir_84_Зачем вообще тогда данные нужны, можно тогда записать "Фирма Ромашка, чувак такой со
смешной прической и писклявым голосом"

ДА! Именно ответ на этот вопрос я и пытаюсь от вас получить.

И нет, я задаю этот вопрос не от балды, он родился в результате трудного опыта разработки ИС.

А для ваших двух таблиц у меня другой вопрос: поиск клиента предполагает, что Вы этого
клиента не помните, включая того физик он или юрик. В какой из таблиц Вы будете его искать?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979525
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, Я не спорю, что опыта разработки ИС у вас больше, чем у меня. У меня его вообще нет =) Я поэтому и вопрос задал, чтобы подсказали, чтобы научиться. У меня приложение однопользовательское, небольшое, не для целой юр. фирмы. В силу специфики работы адвоката, я знаю, что в год не будет там и сотни клиентов. Все дела специфичны и запоминаются, нет сложностей понять кого искать. А так окно разбито на два табличных представления, физ и юр. По кнопке ищется либо там, либо там. Ну если что два раза тыкнуть придется кнопку. Как бы вы это сделали? Планируется конечно больше функциональных возможностей в программе, это только часть фронта работ.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979530
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Как бы вы это сделали?

Так, как, собственно, и делаю: просто каталог на диске, в нём подкаталоги для каждого
клиента, где лежат документы клиента и подкаталоги дел (случаев), в которых лежат
документы каждого случая. Всё. Никаких БД, никаких приложений с кнопками. Любой клиент и
документ ищется и открывается одним даблкликом в проводнике или любом другом файловом
менеджере. Сам каталог легко архивируется как резервная копия, сливающаяся на
флэшку/внешний винт/облако/DVD.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979547
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, ну ок, допустим так. Что касается хранения документов конечно можно так. Если я хочу всех клиентов просмотреть с какими-то реквизитами? И как узнать какому клиенту или делу принадлежит каталог (как они именуются если клиентов много), или о чем дело вообще (ну допустим иные участники дела)? Или тупо вывести статистику по категориям дел? Хочу допустим отчет по оплатам, сколько по каждому делу остаток... Информация о клиенте или деле значит все равно хранится в файле, так какая разница откуда информацию эту стянуть, или из файла или из базы... Еще хочу учет событий сделать, ну чтобы, допустим, решение суда загрузил, а приложение тебе напоминание - не забудь, через 5 дней у тебя срок на обжалование выходит и пр. Я уже вписался в разработку приложения, мне уже не сдать, я поэтому и спрашивал по структуре. Если бы сказали, что совсем все не так, ну переделывал бы. Говорю же, с БД дел вообще никогда не имел, пытаюсь разбираться.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979576
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Если я хочу всех клиентов просмотреть с какими-то реквизитами?

Вариант а: хочешь - перехочешь. И нет, это не шутка. В моей практике не встречалось такой
необходимости.
Вариант б: поиск по файлам в Windows действует надёжно.

Vladimir_84_И как узнать какому клиенту или делу принадлежит каталог (как они именуются если клиентов
много), или о чем дело вообще (ну допустим иные участники дела)?

Именно так они и именуются: "Фирма Ромашка, чувак такой со смешной прической и писклявым
голосом". Этого достаточно чтобы узнать какому клиенту он принадлежит, не так ли?
А для "иных участников" в деле есть специальный документ с названием "список подельников",
разве нет?..

Vladimir_84_Хочу допустим отчет по оплатам, сколько по каждому делу остаток...

У меня бухгалтерия велась отдельно от делопроизводства, что не мешало её экселевской
табличке лежать в том же каталоге.

Vladimir_84_какая разница откуда информацию эту стянуть, или из файла или из базы...

В теории - никакой. Как только доходит до конкретного программирования - охренительная.

Vladimir_84_чтобы, допустим, решение суда загрузил, а приложение тебе напоминание - не забудь, через 5
дней у тебя срок на обжалование выходит и пр

Это задача органайзера. Гугловского/телефонного или любого другого.

Vladimir_84_Я уже вписался в разработку приложения, мне уже не сдать

Вписался - делай. Структура значения не имеет, её всегда можно переделать как только её
косяки вылезут в виде геморроя.

Главное - упорядочить мысли в голове, всё остальное приложится. Да, дзен звучит банально,
но таки работает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979594
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, =) Я понял вас. Так куда тогда простому прикладному программисту податься, раз все уже сделано до нас? ) Только если в науку тогда что-ли, и то если ума достаточно? )))
И хотелось то как раз сделать приложение "помощник", пусть не оптимальное, пусть кривенькое может где-то, но чтобы оттестировалось и работало. Вот, чтобы как раз без остальных программ, а в одном флаконе. Ладно, буду стараться, думать как сделать проще и лучше. В любом случае спасибо за советы и комментарии.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979599
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_Так куда тогда простому прикладному программисту податься, раз все уже сделано до нас? )

Хех! "Знал бы прикуп - жил бы в Сочи."

Я-то кормлюсь в основном с тех, кто "хотел как раз сделать приложение, пусть не
оптимальное, пусть кривенькое" за то, чтобы оно "оттестировалось и работало". Ну и местами
продажей тех самых "остальных программ", которые, в отличии от, уже работают прямо сейчас,
а не через год.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979756
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблицу "MixClients" нужно добавить поле с наименованием клиента, по которому его будут искать.
У такой схемы есть изъян - при появлении нового типа клиента (ИП) придётся менять структуру БД, добавляя новую таблицу и переписывая логику, которая определяет в какую таблицу заносить данные. Плюс добавлять новую форму, в которой будет редактироваться новый тип клиентов.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979768
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav P
У такой схемы есть изъян

Это не изъян.

Stanislav P
и переписывая логику, которая определяет в какую таблицу заносить данные

Зачем переписывать то, что надо просто выбросить если вдруг по недоразумению вообще реализовали?

Stanislav P
Плюс добавлять новую форму

Когда "добавление новой формы" привязывается к "добавлению новой таблицы", становится ясно, что подразумевается работа на каком-то ужасе типа древних Oracle Forms.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979817
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - третье лицо)

а дальше - после уточнения описания нюансов предметной области
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979820
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stanislav P
У такой схемы есть изъян - при появлении нового типа клиента (ИП) придётся менять структуру БД, добавляя новую таблицу и переписывая логику, которая определяет в какую таблицу заносить данные. Плюс добавлять новую форму, в которой будет редактироваться новый тип клиентов.

А если запихать все в TPH-схему, то ничего, как будто, менять не придется. На схеме типичный TPT и его единственный изъян это возможные тормоза по производительности при чтении (чтобы выбирать целиком сущности нужны джойны).
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979830
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
В зависимости от этой категории id-шник присваивается или физ. или юр. Связь типа 1:0...1. Не пересекаются никогда ключи физ и юр. Написал триггеры для проверки поля категории в mixTable, так что id-шник сам куда надо попадет =) Не знаю, есть ли варианты кроме триггера проверить это на уровне СУБД.

ппц, нафига на ровном месте создавать себе проблемы?? вот и разгребаешь потом говнокод

Vladimir_84_
А ИП, не знаю, как пользователь решит. Может в юр. лица. Там поле организационно-правовая форма, их много, может ИП туда вписать. Или в физика, а в поле примечаний указать, что клиент ИП. Это не столь принципиально на данном этапе, надо будет можно добавить и ИП отдельно потом.

о боже... нет, только не это, говнокод и шаловливые ручонки пользователей - адская смесь
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979840
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
о боже... нет, только не это, говнокод и шаловливые ручонки пользователей - адская смесь

Говнокод это твое поле "наименование/фио".
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979845
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Говнокод это твое поле "наименование/фио".

нет, пока что (до уточнения требований) это KISS и YAGNI

вот когда в требованиях появится, например выводить инициалы физ лица в отчете - тогда надо будет думать
а сейчас - это самое простое и рабочее решение, одно поле на все, и во всех формах, отчетах, поисковых запросах и вообще везде-везде - не надо городить if/else/switch

тем самым уменьшается кол-во кода на ЯП, уменьшается шанс бага, уменьшается кол-во тестов и т.д. и т.п.
а это в свою очередь приводит к удешевлению разработки ПО и уменьшению сроков разработки
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979848
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
и во всех формах и отчетах - не надо городить if/else/switch
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979850
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
одно поле на все

Надо вообще одну таблицу с одним полем на все сделать. Еще проще будет.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979858
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел косяк сам у себя - ИНН + unique_index
физ лицо и ИП имеют одинаковый ИНН, тогда так

тип (1 - юл, 2 - фл, 3 - ИП)
ИНН
+ unique_index (тип, ИНН)
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979866
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Надо вообще одну таблицу с одним полем на все сделать. Еще проще будет.

а это уже глупости
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979885
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77это уже глупости

Нет, это всего лишь глупое утрирование уровня школоло: "меня так учили, значит это
единственно правильный путь".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979891
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

17-77это уже глупости

Нет, это всего лишь глупое утрирование уровня школоло: "меня так учили, значит это
единственно правильный путь".

Я-то как раз указал сразу три разных "правильных пути", а 17-77 уперся в один единственно с его т.з. верный.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979895
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 или прикручивать паттерны (ага, ради одного поля)

на все это надо потратить уйму времени

все еще смешно?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979899
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тестируем дно
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979904
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Я-то как раз указал сразу три разных "правильных пути", а 17-77 уперся в один единственно с его т.з. верный.

я обосновал свой выбор, есть конкретное рабочее решение, а не абстрактные размышления о плюсах и минусах наследования в БД
это решение пока что не создает лишних проблем
и ничего более сложного пока не требуется
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979905
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
все еще смешно?

Вы правы, тут скорее плакать надо. Не умеем написать view, поэтому надо везде писать coalesce и так далее в том же духе.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979915
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
какая разница где находится код, который все объединит?
есть вариант вообще его не писать
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979928
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вьюха не избавит от того, что придется писать две формы для создания/редактирования ФЛ/ЮЛ или применять if/else/switch, чтобы скрыть поля
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979931
MxSxHx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir_84_,

Владимир, Вам правильно подсказывают по поводу единой таблицы клиентов, ведь клиент может быть к примеру и ФЛ и ИП, даже встречалось, что одно ОГРН было у двух предприятий, одно было уже давно закрытым.
Вижу такой вариант - создайте одну общую таблицу клиентов, справочник атрибутов (это м.б. ИНН, информация по документу, месту регистрации, юрид.адрес, ОГРН, КПП, СНИЛС, дата регистрации ЮЛ, бенифициар, рез/нерез, т.е. для каждого типа клиента - гибкий набор атрибутов, подключается оператором по мере необходимости ) и таблицу, где будут хранится заполненные оператором атрибуты клиента.
Таблица для ведения дел - немер дела, далее привязываются клиенты из общей таблицы Клиентов, указывается его тип - истец/ответчик, привязываются доверенности, карточки образцов подписей, печатей и прочие основные доки.
И возможно отдельная таблица с материалами дела.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979939
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
есть конкретное рабочее решение

Отхожее место в виде ямы на улице это тоже "конкретное рабочее решение", когда про другие опции не знаешь.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979942
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
softwarer,
какая разница где находится код, который все объединит?
есть вариант вообще его не писать

Я же предложил уже вариант - одна таблица с одним большим полем. И одна форма с одним большим текстовым полем для ввода. Минимум затрат на разработку.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979945
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatодна таблица с одним большим полем.

Вообще-то с двумя, поскольку широкий список неудобен, но таки да, такой вариант тоже
уместен. И я его предлагал выше гораздо раньше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979948
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,

да сколько уже можно, все три подхода - это две таблицы/два поля, на текущем этапе это только создает проблемы, а не решает их
"знать про них" и "применять к месту" разные вещи

и мое решение с легкостью конвертируется в tph и немного труднее в tpt/tpc, если это потребуется в будущем
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979952
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
какая разница где находится код, который все объединит?

В данном случае эта разница просто показывает, что стенания про "куча лишней трудоёмкости, надо джойны в каждом комбобоксе писать" идёт исключительно от неумения пользоваться базовыми инструментами. Равно как - я вроде уже говорил - об этом же говорят высказывания о том, что количество таблиц связано с количеством форм.

Что же касается этих решений, то основная практическая разница между ними в том, что в реляционных базах хранить мух отдельно от котлет, при необходимости собирая их, заметно удобнее, чем хранить вместе, при необходимости разбирая и потом заново собирая другим нужным способом. Решение с "одной общей таблицей" хуже расширяется, поэтому при близкой трудоёмкости его имеет смысл выбирать только тогда, когда есть твёрдая уверенность в том, что постановка задачи близка к окончательной и существенных доработок не будет. В противном случае Ваша экономия на спичках обернётся выбрасыванием и полным переписыванием как наиболее рациональным методом доработки решения под новые требования.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979953
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Я же предложил уже вариант - одна таблица с одним большим полем. И одна форма с одним большим текстовым полем для ввода. Минимум затрат на разработку.

есть баланс между говнокодом, удобством и здравым смыслом - в этом решении баланс стремится к нулю

решение с единым полем наименование/фио - это не по канонам, но отсекает половину срока разработки, ты реально хочешь угробить в два раза больше времени лишь бы следовать идолу?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979959
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
все три подхода - это две таблицы/два поля

Что за ересь. TPH - "table per hierarhy", TPC - "table per concrete type", TPT - "table per type". "В одну таблицу" из них это только TPH.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39979961
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
решение с единым полем наименование/фио - это не по канонам, но отсекает половину срока разработки

У тебя создание одного дополнительного поля в БД занимает столько же времени как вся остальная разработка? Ты его что, прямо в файлах базы бинарным редактором создаешь?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980025
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
идёт исключительно от неумения пользоваться базовыми инструментами

мне знакомы view, но я не хочу внедрять лишний компонент, когда он только что и делает - это решает выдуманные проблемы
не забыть бы потом его доработать

softwarer
Решение с "одной общей таблицей" хуже расширяется

пожалуй да, но никто не мешает в моем решении добавить рядом еще три таблицы ЮЛ с егрюл, ИП с огрнип и ФЛ с паспортом, когда они понадобятся, и волки сыты и овцы целы. старое ломать не придеться.

fkthat
"В одну таблицу" из них это только TPH.

ну да, но этот вариант по канону подразумевает два поля - наименование для ЮЛ и фио для ФЛ, два поля - привет вьюха/if/else/switch/coalesce

fkthat
У тебя создание одного дополнительного поля в БД занимает столько же времени как вся остальная разработка? Ты его что, прямо в файлах базы бинарным редактором создаешь?

а пробрасывать его везде в приложении кто будет? пушкин?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980044
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77

а пробрасывать его везде в приложении кто будет? пушкин?

метаданные
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980047
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
пожалуй да, но никто не мешает в моем решении добавить рядом еще три таблицы

Веселье в Вашем решении начнётся, как только потребуется кинуть внешний ключ на юрика или разобрать "наименование" физика отдельно на фамилию, имя и отчество.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980048
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77

ну да, но этот вариант по канону подразумевает два поля - наименование для ЮЛ и фио для ФЛ

На самом деле три, т.к. еще нужен дискриминатор.

17-77

привет вьюха/if/else/switch/coalesce

Если на клиенте используется ОРМ, то вообще ничего не нужно - давно уже все ОРМы прекрасно мепят подтипы в РБД на наследование классов в коде.

Впрочем ладно, твоя взяла, говнокодь свой говнокод как тебе удобней, храни телефоны в полях для e-mail, а вес товара в полях для цены, все равно не мне с этим потом долбаться.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980049
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Веселье в Вашем решении начнётся, как только потребуется кинуть внешний ключ на юрика или разобрать "наименование" физика отдельно на фамилию, имя и отчество.

Так все ведь уповают, что "когда понадобится, тогда и сделаем", а на деле "когда понадобится" лепят поверх какой-нибудь костыль из полированной какашки "давайте тогда будем просто ФИО разделять на три части точкой с запятой". А потом пишут сюда же на форум "помогите, христа ради, написать мне такой-то запрос".
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980052
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
а тут я уже в каждом конкретном случае буду считать порождаемое кол-во костылей для того или иного решения и выберу наименьшее, ну или как-то так

fkthat
На самом деле три, т.к. еще нужен дискриминатор.

оно у меня уже есть - поле тип

fkthat
Если на клиенте используется ОРМ, то вообще ничего не нужно - давно уже все ОРМы прекрасно мепят подтипы в РБД на наследование классов в коде.

ага, и она сгенерит два класса, а теперь расскажи мне как ты будешь делать:
1. формы списков ЮЛ/ФЛ с фильтрацией, сколько у тебя их будет
2. формы для редактирования ЮЛ/ФЛ и сколько их у тебя будет
3. дроп-даун-лист для выбора истца в деле

fkthat
Впрочем ладно, твоя взяла, говнокодь свой говнокод как тебе удобней, храни телефоны в полях для e-mail, а вес товара в полях для цены, все равно не мне с этим потом долбаться.

ээ нее, не передергивай, такого я не предлагал
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980053
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Так все ведь уповают, что "когда понадобится, тогда и сделаем"

Это не то чтобы плохое соображение. Вопрос в том, "а сможем ли мы нормально сделать, когда понадобится?". В данном случае в этом есть большие сомнения.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980056
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
ага, и она сгенерит два класса

Она сгенерит три класса - один базовый с общими полями и два производных, каждый с полями специфичными именно для каждого из подтипа сущности. А не какое-то непонятное поле "не мышонок, не лягушка, а неведома зверушка" - то ли это название, то ли это ФИО поди разбери.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980064
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы не понимаете следующей штуки:
1. если вам понадобилось только в одном месте сделать ссылку только на ЮЛ, значит во всех остальных 10 местах нужна общая ссылка
2. тогда мое решение без доработок выдаст 1 костыль, а в случае с TPC будет 10 костылей
3. если мое решение расширить до TPT тремя таблицами (ЮЛ/ФЛ/ИП), то по идее можно сделать FK на ЮЛ в одном конкретном случае, но надо проверять, я такой фигней не страдал

fkthat
Она сгенерит три класса

да пофик, в базовом будет только ИД, в ФЛ будет фио, в ЮЛ будет name
как ты сделаешь формы и дроп даун?
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980065
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatхрани телефоны в полях для e-mail

Вот это, кстати, очень интересный вопрос. Как понять, что "это поле для e-mail" если оно
называется, например, "contact"? Прочитать мысли архитектора, который думал, что
"контактовать клиента можно только по e-mail"?.. А делать если у человека больше одного
мейла? А, нет, можете не отвечать, я знаю, это будут поля mail1, mail2, mail3, mail4,
mail5. Ведь именно так предписывает первая нормальная форма. И ни в коем случае нельзя
сомневаться, ведь может родиться ересь о неструктурированном поле "контактная информация",
а это сделает написание спамобота, рассылающего всем клиентам оповещение об отпуске, очень
сложным.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980075
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
это будут поля mail1, mail2, mail3, mail4, mail5

Конечно, нет, я их все в одно поле запишу, через тройной дефис (чтобы проще парсить было), и пару-тройку телефонов туда же до кучи Я недавно видел такую БД а-ля кастомной CRM, где так телефоны контактов хранились - через точку с запятой. При этом еще то что туда вводилось операторами вообще никак не проверялось и не форматировалось и там запросто можно было встретить какое-нибудь такое значение (прямо в поле "телефон"): "Иванов Иван Иваныч +7 (123) 4526-824; 234-5678"
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980315
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот не заходил, сейчас глянул )) Как всегда споры развели. ) Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме... ИП... Ну так если что не сложно еще одну таблицу для ИП завести. Ведь одному id из общей таблицы будет соответствовать только одна запись в одной из конкретизированных таблиц. Вроде ничего лишнего, в отличие от одной таблицы. И не шибко хитрые запросы то получаются при таком подходе... Вопрос производительности остро не стоит. Что там еще было то... Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.), категория дела тоже (гражданское, уголовное...). В таблицах есть текстовое поле Notes, вот туда все что хочется дополнительно можно записать, типа "клиент - говнюк" или "сложно дозвониться, лучше писать смс", или доп. телефон и т.д. Поскольку одномоментно пользователю необходимо работать только с одним клиентом, и пользователь знает какой категории клиент, вот сделал отдельные графические отображения (View) для физ и юр, сортируется все средствами приложения по любому столбцу, соответственно поиск тоже или там, или там, по любому полю. Данные хранятся в модели (Model), вообщем схема "модель-вид". Классы разделены на интерфейс и внутреннюю логику, и так со всеми таблицами, которые нужно отобразить пользователю. Понятно, что практически любую задачу можно решить различными способами, поэтому и не жду, что все здесь к единому мнению придут. Уже начал делать так =) Ещё один момент просто, мне тут предложили сделать так, как на схеме ниже (часть только с клиентами). Не знаю, так лучше что-ли? Ну если брать в расчет, что такое разделение приемлемо и допускается (это я не к категорическим противникам этой идеи =)).
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980332
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме...

Да ничем он не плох. Он вполне правилен, разве что сущности неудачно названы. Вы обнаружите это, как только в программе появятся физ. лица, не являющиеся клиентами - например, какие-нибудь там "свидетели".
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980348
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, Не, сущностей больше не будет, всякие там лица в карточке дела нужны будут только для учета, ну типа, известны их фамилии, ну и в поле заметки можно о них что-нибудь написать если известно и необходимо. Допустим клиент Иванов, физ. лицо, в деле он истец. Ответчиком выступает некий Петров, вот он дал свой тел. номер для связи, ну там решить может миром вопрос, в поле Заметки можно номер занести. Мне этого Петрова вообщем отдельно учитывать не надо. Есть и есть в заметках. Спасибо. А вариант который мне предлагают усиленно, на схеме, что приложил, он хуже, лучше, или все равно? Мне просто как-то аргументировать надо, что хочу сделать как у меня =)
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980363
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
А вариант который мне предлагают усиленно, на схеме, что приложил, он хуже, лучше, или все равно?

На схеме определённо неправильны значки бесконечности. В остальном - можно назвать случаи, когда она чуть более удобна, можно назвать случаи, когда она чуть менее удобна, но в целом разница невелика. Я бы сказал так: вариант на схеме предпочтительнее в тех случаях, когда любой атрибут "клиента - физ. лица", являются либо атрибутом "клиента не физ. лица" либо атрибутом "физ. лица не клиента" (ну и про юриков аналогично).
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980373
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer, все понял спасибо. Стрелочки это препод с учебы так нарисовала не верно ))
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980423
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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)

а у тебя выходит, что одно и тоже юр или физ лицо одновременно является несколькими базовыми "просто лицами".
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980445
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fkthat, спасибо. У меня в моей схеме, которая предыдущая так и сделано.
А эту последнюю мне предложили, но я к ней не склоняюсь.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980490
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
вот сделал отдельные графические отображения (View) для физ и юр

что и требовалось доказать, время разработки х2

Vladimir_84_
Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.)

не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент

Vladimir_84_
Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме...

и помнится там еще триггер какой-то был - это ты свинью подложил разработчику после тебя, прежде чем вносить изменения - надо будет со всем этим разобраться, костыль на костыле, нет чтобы попроще
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980516
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
17-77
все еще смешно?

Вы правы, тут скорее плакать надо. Не умеем написать view, поэтому надо везде писать coalesce и так далее в том же духе.

С вьюшками другая проблема бывает.
У меня все отчеты написаны поверх вью. И недавно получил:
Код: sql
1.
2.
Msg 8623, Level 16, State 1, Line 5
The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.


Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании).

По сабжу.
Есть ОДНА сущность - контрагент. Поэтому желательно создать ОДНУ таблицу, где будут храниться общие данные всех контрагентов - и юр лиц, и физиков. Можно сделать еще пару таблиц для атрибутов, специфических для каждого типа контрагентов... Но я бы так не делал. Нет каких то явных плюсов.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980523
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_ustinov
Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании)

Ну что я могу сказать. Можно ещё каждую неделю делать для каждой компании новый набор таблиц.

s_ustinov
Есть ОДНА сущность - контрагент.

Это верно.

s_ustinov
Поэтому желательно создать ОДНУ таблицу, где будут

А вот это уже не верно. Стоит подумать в сторону "Есть ДРУГАЯ сущность - физическое лицо. ТРЕТЬЯ сущность - организация". И так далее.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980555
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_ustinov
Есть ОДНА сущность - контрагент.

Есть одна абстрактная сущность "Контрагент", а есть её подтипы, например "ИП", "Юрлицо", "Физлицо".
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980570
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
s_ustinov
Было 25 компаний в базе, стало 60. У каждой компании - свой набор таблиц (60 наборов таблиц - по одному для каждой компании)

Ну что я могу сказать. Можно ещё каждую неделю делать для каждой компании новый набор таблиц.

Это навик так работает - так что все претензии к Микрософт. ))

softwarer

s_ustinov
Есть ОДНА сущность - контрагент.

Это верно.

s_ustinov
Поэтому желательно создать ОДНУ таблицу, где будут

А вот это уже не верно. Стоит подумать в сторону "Есть ДРУГАЯ сущность - физическое лицо. ТРЕТЬЯ сущность - организация". И так далее.

В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :)

Но при решении конкретной задачи мы в любом случае пренебрегаем некоторыми деталями. И для описываемой ТС задачи, как мне кажется, подобными деталями можно пренебречь.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980575
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
s_ustinov
Есть ОДНА сущность - контрагент.

Есть одна абстрактная сущность "Контрагент", а есть её подтипы, например "ИП", "Юрлицо", "Физлицо".

Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях.
Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.).
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980585
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_ustinov
Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях.
Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.).

Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент - это и есть субтипизация. В IDEF1x для такого даже существует специальная нотация.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980586
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
s_ustinov
Если уж говорить совсем теоретически, то правильнее думать не о подтипах, а об отдельных сущностях.
Есть контрагенты, есть физ лица, есть юр лица. Физ лицо - не подтип контрагента, а отдельная сущность. Если те же уведомления по почте автоматом рассылать или с днем рождения поздравлять - то для юр лица надо хранить ссылки на контактных лиц (директор, главбух, юрист, секретарь и т.д.).

Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент - это и есть субтипизация. В IDEF1x для такого даже существует специальная нотация.


С чего вдруг
Физлицо это отдельная сущность, любой экземпляр которой при этом одновременно является экземпляром сущности Контрагент
?

Вполне может быть физ лицо - юрист компании клиента (контактное лицо), который сам по себе контрагентом не является.

Если уж создавать в базе сущности "Физ лицо" и "Юр лицо", то не как подтипы сущности "Контрагент", а как отдельные сущности.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980693
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
17-77
Vladimir_84_
вот сделал отдельные графические отображения (View) для физ и юр

что и требовалось доказать, время разработки х2

Vladimir_84_
Статус клиента в таблице дело выбирается из combobox-а (истец, ответчик и т.д.)

не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент

Vladimir_84_
Честно говоря так и не понял, чем плох тот подход, что получился у меня на последней схеме...

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


Да, время разработки штука такая... Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица. Я одно представление что-ли сделаю со всеми полями и физ и юр, и где-то галочкой кто это? Ну смотреться это будет мне кажется не очень. Так что хоть и из одной таблицы, но придется выбирать информацию, чтобы клиенту показать, что надо заполнить. Так что тоже кодить. А исходя из предметной области скажу, что юристы с компьютерами тупые вообще, им покажи кучу полей, они заполнят что-нибудь, типа огрн для физ. лица. =) Шучу, но случайно можно тыкнуть не туда. Тут еще проверки надо ставить всякие или блокировать элементы ввода, так что не быстрее и не проще.
Сам клиент выбирается из combobox-а, или не выбирается, если сразу после заполнения его карточки переходишь к новому делу. Я не стал все поля прописывать, мне подсказка по направлению нужна была.
Триггеров не будет, я понял, не советуют.

s_ustinov

В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :)

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


Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно?
И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть ))
Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо.
Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу).
Вообще спасибо всем, я услышал, опыта прибавилось =)
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980700
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Vladimir_84_#22168925]
17-77


что и требовалось доказать, время разработки х2

не статус клиента (кстати этого поля я не вижу на последней схеме), а сам клиент

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


Да, время разработки штука такая... Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица со всеми полями, и физ и юр, и где-то галочкой кто это. Но придется все равно выбирать информацию, чтобы пользователю показать, что надо заполнить. Или оставить одно окно со всеми реквизитами... Смотреться это будет мне кажется не очень. Так что в любом случае кодить. А исходя из предметной области скажу, что юристы с компьютерами тупые вообще, им покажи кучу полей, они заполнят что-нибудь, типа огрн для физ. лица. =) Шучу, но случайно можно тыкнуть не туда. Тут еще проверки надо ставить всякие или блокировать элементы ввода, так что не быстрее и не проще.
Сам клиент выбирается из combobox-а, или не выбирается, если сразу после заполнения его карточки переходишь к новому делу. Я не стал все поля прописывать, мне подсказка по направлению нужна была.
Триггеров не будет, я понял, не советуют.

s_ustinov

В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :)

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


Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно?
И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть ))
Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо.
Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу).
Вообще спасибо всем, кто помог участием, поскольку с этой сферой я недавно только столкнулся, я всех услышал, опыта прибавилось =)
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980713
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, что за хрень с двумя сообщениями, извините. Кнопку удалить не нашёл.
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980716
Vladimir_84_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ещё комрадам fkthat и software за информацию и ссылки и советы. Всё почитаю, если что смогу отстоять свою схему. У меня по плюсам выпуск, но раз вписался с базой...
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980747
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_
Если хочется быстро, то не факт, что будет хорошо =) Ну будет у меня одна таблица. Я одно представление что-ли сделаю со всеми полями и физ и юр, и где-то галочкой кто это? Ну смотреться это будет мне кажется не очень. Так что хоть и из одной таблицы, но придется выбирать информацию, чтобы клиенту показать, что надо заполнить. Так что тоже кодить.

в моем варианте и быстро, и хорошо, и без галок, и без if/else/switch, и кодить меньше
...
Рейтинг: 0 / 0
Помощь с проектированием БД, клиенты, документы
    #39980817
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_84_

s_ustinov

В общем случае, это правильно. Если, например, нам нужны еще и контактные лица, то в некоторых случаях желательно понимать, что один и тот же человек может являться директором одного юр лица, главбухом другого и при этом - еще и ИП. :)

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


Я вот подумал, зачем выделять отдельно всяких директоров, бухгалтеров, представителей... И не придумал. Исходя из моей задачи, представитель указывается просто, да и все... Зачем это все хранить отдельно?
И вот про "пренебрегаем деталями" я согласен абсолютно, начитался форума, тут некоторые чуть не каждую запятую куда-то выносить хотят =) Теория теорией, но здравый смысл должен быть ))
Я вот сейчас это пытаюсь реализовать, пытался, чтобы дата нормально сохранялась, ну типа ДР клиента, или дату выдачи паспорта... Ну чтобы не дефолтное значение, что фреймворк подставляет, а допустим "No date", и чтобы потом загружалось и проверялось и пр. Так вот задолбался этой фигней заниматься и пришел к выводу, а нафиг мне вообще допустим поле "Дата выдачи паспорта", только что так делают? =) Но это же не для МФЦ программа или кому еще это надо.
Я вообще много полей поудаляю нафиг, я знаю, что и половину не заполнят... Кстати спасибо комраду Dimitry Sibiryakov, он в этом плане мне помог осознать ))) Короче надо коротенько и по делу).

Вот именно. Одна таблица для клиентов, в которую будем заносить данные и юр лиц и физ лиц (в разные поля) - это достаточно для очень многих задач.

Если сильно надо будет - потом можно сделать отдельные таблицы для физ лиц и для юр лиц, которые могут быть не только клиентами (то есть не подтипы, а отдельные сущности). А чтобы очень много не переписывать - сделать вью.
Но для таких приложений это обычно избыточно - не надо переусложнять. Если нет реального кейса, для которого не хватает одной таблицы клиентов - и не надо усложнять схему БД.
...
Рейтинг: 0 / 0
103 сообщений из 103, показаны все 5 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помощь с проектированием БД, клиенты, документы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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