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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

==========================
Вопрос о хранении историй изменения реквизитов контрагентов - отдельная тема.
...
Рейтинг: 0 / 0
15.11.2004, 15:32
    #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
15.11.2004, 15:44
    #32782592
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
>DDL
И что? Все это было перечисленно и ранее. Как и было сказанно, такое решение 100% гарантии правильного ввода не дает.
...
Рейтинг: 0 / 0
16.11.2004, 00:42
    #32783233
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
Пускай 10 менеджеров аккуратно ведут словарь клиентов. А иначе - эвристика получается.
...
Рейтинг: 0 / 0
16.11.2004, 00:51
    #32783238
Ekuku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
Этой теме столько лет, сколько учет существует, а решения готового нет.
Пытались всё создать ИИ для словоформ и словообразования, а кроме Промта дырявого и им подобных все нет лучше. Единственный метод - это держать выделенных людей на справочниках, которые плюясь и матерясь будут исправлять и сортировать записи. Постепенно всё устаканится и возникнут регламенты ведения записей для каждого справочника. До тех пор, правда, пока эти люди не уволятся.. Потом опять эта кавасия сначала происходит.. :)
...
Рейтинг: 0 / 0
16.11.2004, 23:29
    #32785436
дино
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
Завести в Вашей БД справочник синонимов и каждое введенное наименование прокручивать через него. При достаточном проценте совпадений предлагать менеджеру список синонимов. Также посадить человека на ведение справочника и подачу кляуз на нерадивых менеджеров.
...
Рейтинг: 0 / 0
16.11.2004, 23:37
    #32785440
Ekuku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
дино.. каждое введенное наименование прокручивать через него .. Также посадить человека на ведение справочника и подачу кляуз на нерадивых менеджеров. Лучше сразу завести мясорубку и прокручивать через нее галстук на шее того манагера, который не слушается.. Дешево и практично.. Еще практичней в шредер его галстук запихивать..
...
Рейтинг: 0 / 0
17.11.2004, 18:12
    #32787632
дино
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
To Ekuku: что лучше или хуже, будет решать Matilda Cherstin, наше дело помочь человеку.
...
Рейтинг: 0 / 0
17.11.2004, 18:53
    #32787728
Ekuku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как устроить правильный ключ?
диноTo Ekuku: что лучше или хуже, будет решать Matilda Cherstin, наше дело помочь человеку. Ну в общем да.. конечно..
Но в вашем предложении есть неприятный момент. Вы тоже предлагаете устраивать поиск на совпадение и релевантность, но это опасно .
И это уже обсуждалось.
Вы когда-нибудь видели например сколько вариантов слова "Буратино" бывает? А я видел в каталогах для электронного магазина от разных поставщиков книжек.. :-)
Мясорубка форева! Но прокручивать только галстук..
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как устроить правильный ключ? / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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