powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как устроить правильный ключ?
25 сообщений из 33, страница 1 из 2
как устроить правильный ключ?
    #32764933
Matilda Cherstin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Справочник клиентов ведут 10 менеджеров. Как можно реально обеспечить ввод одного клиента не более чем один раз? Как не допустить «ООО Днепр» вместе с «Днепр ООО» или "Общество с ограниченной ответственностью "Днепр""?
То есть, вопрос в использовании внешних ключей и в том, откуда их брать.
ИНН (индивидуальный налоговый номер) в данном случае также не подходит, т.к. он одинаковый у филиалов, его не применишь к нерезидентам, и главное - он катит только для 100% "белой" бухгалтерии. А если бухгалтерия, точнее учетная политика компании - реальная, и/или если в базу вносятся не только клиенты, заключившие договора, но также потенциальные клиенты, по факту первого общения с ними (в тотм числе, даже физические лица), с целью это общение продолжить - то надо что-то иное в качестве ключа использовать!
Как же быть?
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32765018
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Как можно реально обеспечить ввод одного клиента не более чем один раз?

Решения в общем виде не существует. Можно уменьшить количество ошибок.

> Как не допустить «ООО Днепр» вместе с «Днепр ООО» или "Общество с
> ограниченной ответственностью "Днепр""?

1. Стандартизовать организационно-правовые формы (т. е., хранить их отдельно и выбирать, а не вводить);
2. Явно описать информационный стандарт (как именно описываются предприятия, сотрудники, какие сокращения допустимы, какие - нет etc);
3. Использовать маркер "достоверности" записи: вновь созданная запись недостоверна, пока не проверена администратором (не только на соответствие имени и организационно-правовой форме предприятия, но и сопутствующие атрибуты (телефоны, url'ы, mail'ы, сотрудников etc).

> То есть, вопрос в использовании внешних ключей и в том, откуда их брать.

Факультативно - идентификатор налогоплательщика (он есть в любой стране) с дополнительными признаками. Imho не как ключ, а как _дополнительный_ идентификатор.

> надо что-то иное в качестве ключа использовать

Естественно, суррогатный ключ. Независимо от наличия/отсутствия естественных ключей.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32765789
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для ООО- - фотокопия печати в базе.

для лиц - рожа и скан отпечатка пальца
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32765901
Matilda Cherstin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, пальцы нам сканировать вряд ли дадут, но идея с печатями - очень классная! Лепсик, может ещё что подскажете?
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32765955
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_200406211. Стандартизовать организационно-правовые формы (т. е., хранить их отдельно и выбирать, а не вводить);
2. Явно описать информационный стандарт (как именно описываются предприятия, сотрудники, какие сокращения допустимы, какие - нет etc);
3. Использовать маркер "достоверности" записи: вновь созданная запись недостоверна, пока не проверена администратором (не только на соответствие имени и организационно-правовой форме предприятия, но и сопутствующие атрибуты (телефоны, url'ы, mail'ы, сотрудников etc).

Мы пошли другим путем... решили не бороться с неправильным вводом, а предусмотрели механизм слияния клиентов, хотя все выше сказанное конечно же верно.
Случай был. Смотрю в базе отсартированной по названию на первом месте появился "Орион". Оказалось что первый символ 0 (ноль) . На вопрос зачем так написали, ответели: "мы с ним чаще всего работаем, чтоб проще выбирать было".
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32766558
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем приложении наименование фирмы - это один атрибут (Днепр), а форма организации - это другой атрибут (справочник). Несколько надежнее получается, хотя могут и тут напороть
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32766595
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователи всегда найдут способ обойти все ограничения. Какой бы супер навороченный механизм защиты не был придуман.
Как один из вариантов - можно делать разбор как в поисковиках, по вхождению слов. При этом забить слова исключения (все те же ООО, АО и пр.). Одновременно проверять и телефоны. При совпадении хотя бы на 70% предупреждать и предлагать выбор ... но остальное все равно будет на совести юзеров.

Andrey
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32766663
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Мы пошли другим путем... решили не бороться с неправильным вводом,

Imho напрасно. Тупым манагерам тяжело объяснить про количество информации, ошибки ввода и пр. Практически невозможно.

> Пользователи всегда найдут способ обойти все ограничения. Какой бы супер
> навороченный механизм защиты не был придуман.

Хм... ну, если специально будут искать, - скорее всего найдут, конечно. Но нужно будет очень постараться. Фишка в том, что правильный ввод - это не только программное решение, а еще и информационная политика (информационные стандарты) + штрафы за искажение информации. Ага. И только так.

> Как один из вариантов - можно делать разбор как в поисковиках, по вхождению
> слов. При этом забить слова исключения (все те же ООО, АО и пр.).
> Одновременно проверять и телефоны. При совпадении хотя бы на 70%
> предупреждать и предлагать выбор...

Крайне низкая эффективность. Организационно-правовую форму обычно можно выделить, а ориентироваться на телефоны, факсы, мейлы как на источник надежной информации я бы не стал. Абсолютно реальная ситуация: регистрируется новое предприятие с теми же телефонами, адресом и пр., отличающееся от старого множественным числом имени. Причем, некоторое время (иногда значительное) работает и старое предприятие. Imho здесь один выход: получить полный перечень реквизитов и сравнить их со старыми.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32766803
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Хм... ну, если специально будут искать, - скорее всего найдут, конечно. Но нужно будет очень постараться. Фишка в том, что правильный ввод - это не только программное решение, а еще и информационная политика (информационные стандарты) + штрафы за искажение информации. Ага. И только так.
Это не дело программеров. Это дело политики предприятия в которую мы зачастую не можем вмешиваться, а только давать рекомендации. Наше же дело как можно лучше предусмотреть потенциальные ошибки.

guest_20040621Крайне низкая эффективность. Организационно-правовую форму обычно можно выделить, а ориентироваться на телефоны, факсы, мейлы как на источник надежной информации я бы не стал. Абсолютно реальная ситуация: регистрируется новое предприятие с теми же телефонами, адресом и пр., отличающееся от старого множественным числом имени. Причем, некоторое время (иногда значительное) работает и старое предприятие. Imho здесь один выход: получить полный перечень реквизитов и сравнить их со старыми.
Ну правовую форму то выделить можно, только пользователи ее все равно иногда вводят (на всякий случай). А ориентироваться надо на все поля. Чем больше элементов сравнения, тем естественно, большая достоверность.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32766880
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Это не дело программеров. Это дело политики предприятия в которую мы
> зачастую не можем вмешиваться, а только давать рекомендации. Наше же дело
> как можно лучше предусмотреть потенциальные ошибки.

Есть техническое задание, которое _уже_ учитывает информационный стандарт. Задача кодера - его реализовать. Без затей и отсебятины. И не нужно предусматривать потенциальных ошибок, - консультанты предметной области знают предметную область как бы сильно лучше кодера. Ы?

> Ну правовую форму то выделить можно, только пользователи ее все равно иногда
> вводят (на всякий случай).

Дружище, это одноразовая акция: такой пользователь при первой ошибке предупреждается, при второй - увольняется. Ибо незачем платить деньги даунам.

> Чем больше элементов сравнения, тем естественно, большая достоверность.

В случае предприятий единственный критерий достоверности - соответствие регистрационным данным и уставным документам. Все. И никакие дополнительные проверки достоверности Вам не добавят.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32770432
Matilda Cherstin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дык я-то не "кодер". Если бы речь шла именно о кодировании, то вопрос бы ставился на акссессном форуме. А я его ставлю на форуме по проектированию баз данных, и надеюсь именно на советы по организации, а не по кодированию!
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32770539
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> дык я-то не "кодер".

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

> надеюсь именно на советы по организации, а не по кодированию!

В Вашем случае изобретать нечего. Типовая задача, типовая реализация.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32771517
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32773551
Фотография Makar4ik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в свое время писал процедурку, которая сканирует таблицу на "похожесть" наименований, т.е. на частичные совпадения.
Это не решение, но помощь менеджерам, которые не хотят искать существующую запись перед ее забивкой.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32778611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то все получается слишком по словянски...
1)Нужна методика генерации внешнего ключа - но руководство не желает использовать стандартный способ идентификации юр. лиц. который гарантирует уникальность. (название филиала можно легко сделать составной частью ключа)
2)Потенциальные клиенты - хотят быть реальными но не желают указать свой паспортный, налоговый, расчетный и т.д. номера.
3)Имеет место двойная бухгалтерия которая законам арифметики плохо подчиняется.
Грустно...
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32779282
Matilda Cherstin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вовсе не грустно!
Напротив - весело и интересно!
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32780491
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mayton. Вашу проблему я решаю так.
В базе есть названия "для себя". Туда записываются названия фирм в том виде, в котором они удобны юзерам базы. Типа - "ЧП Иванов, скотина, плохо расплачивается с долгами". И каждая "скотина" имеет суррогатный ключ. И у каждой "скотины" есть поля "Официальное название", "Р/с", "ИНН" и пр.

Признак бухгалтерии = (Черная, Белая) является реквизитом сущности "операция"

==========================
Вопрос о хранении историй изменения реквизитов контрагентов - отдельная тема.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32782550
DDL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDL
Гость
Matilda Cherstinдык я-то не "кодер". Если бы речь шла именно о кодировании, то вопрос бы ставился на акссессном форуме. А я его ставлю на форуме по проектированию баз данных, и надеюсь именно на советы по организации, а не по кодированию!

Без перепроектирования не обойтись:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Таблица clients:
1. client_id <уникальный номер клиента для связи с другими таблицами - первичный ключ number>
2. form_id <ссылка на таблицу form - справочника форм собсвенности number>
3. name <имя клиента приведенное к верхнему регистру и очищенное от кавычек на прикладном уровне varchar2>
4. buh_colour <"цвет бугалтерии" number>
5. ... остальные свойства клиента

Таблица form
1. form_id <ID формы собсвенности number>
2. name <название формы varchar2>

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

создать по столбцам 2,3,4 уникальный индекс.

при вводе перехватывать исключение DUP_VAL_ON_INDEX и выводить сообщение. что клиент уже существует.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32782592
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>DDL
И что? Все это было перечисленно и ранее. Как и было сказанно, такое решение 100% гарантии правильного ввода не дает.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32783233
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай 10 менеджеров аккуратно ведут словарь клиентов. А иначе - эвристика получается.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32783238
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этой теме столько лет, сколько учет существует, а решения готового нет.
Пытались всё создать ИИ для словоформ и словообразования, а кроме Промта дырявого и им подобных все нет лучше. Единственный метод - это держать выделенных людей на справочниках, которые плюясь и матерясь будут исправлять и сортировать записи. Постепенно всё устаканится и возникнут регламенты ведения записей для каждого справочника. До тех пор, правда, пока эти люди не уволятся.. Потом опять эта кавасия сначала происходит.. :)
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32785436
дино
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Завести в Вашей БД справочник синонимов и каждое введенное наименование прокручивать через него. При достаточном проценте совпадений предлагать менеджеру список синонимов. Также посадить человека на ведение справочника и подачу кляуз на нерадивых менеджеров.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32785440
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дино.. каждое введенное наименование прокручивать через него .. Также посадить человека на ведение справочника и подачу кляуз на нерадивых менеджеров. Лучше сразу завести мясорубку и прокручивать через нее галстук на шее того манагера, который не слушается.. Дешево и практично.. Еще практичней в шредер его галстук запихивать..
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32787632
дино
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Ekuku: что лучше или хуже, будет решать Matilda Cherstin, наше дело помочь человеку.
...
Рейтинг: 0 / 0
как устроить правильный ключ?
    #32787728
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
диноTo Ekuku: что лучше или хуже, будет решать Matilda Cherstin, наше дело помочь человеку. Ну в общем да.. конечно..
Но в вашем предложении есть неприятный момент. Вы тоже предлагаете устраивать поиск на совпадение и релевантность, но это опасно .
И это уже обсуждалось.
Вы когда-нибудь видели например сколько вариантов слова "Буратино" бывает? А я видел в каталогах для электронного магазина от разных поставщиков книжек.. :-)
Мясорубка форева! Но прокручивать только галстук..
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как устроить правильный ключ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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