![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нормализация информации [D6, IB6.x]
Альберт © (2008-02-15 14:32:00)Доброго времени суток.
Вопрос знатокам:
1.Имеет ли смысл имена клиентов выделять в отдельную таблицу, а в основной проставлять только ИД записи имени.
2.Могут ли при этом быть проблемы с сортировкой основной таблицы ?
Прошу привести аргументы за и против.
Заранее спасибо за ответы.
Sergey Masloff (2008-02-25 21:02:00) [21]Альберт (25.02.08 16:42) [89]
>Хорошо, простая задача:
>Нужно сформировать письмо и в нем должно быть :
Это вообще задача нерешаемая напрямую.
Можно хранить наименование (ФИО) как одно поле и в отдельной таблице языковые синонимы по связке один ко многим.
Я бы сделал так - в таблице поля наименование-поисковое наименование-иностр. наименование (последнее избыточно но удобно для основного иностранного. Например английский эквивалент хранится денормализовано а все остальные - через синонимы потому что английский используется постоянно а остальные - раз в сто лет.
В поисковое наименование при вводе автоматически преобразуется строка из основного наименования например Петров Игорь Иванович => Петров И.И. но пользователь может поправить если автомат неверно отработал. В иностранное можно транслитерировать по умолчанию но тоже с возможностью правки.
Имена и отчества выбирать - зачем? В какой реальной задаче это нужно? Словари имен и отчеств доступны, можно в принципе использовать для проверки но не обязательно. Это уже бантики которые дяют 5% удобства.
Альберт (2008-02-25 16:42:00) [22]В чем смысл отдельного хранения - я из ветки не выяснил.
> Экономия места? Спорно будет ли она вообще. Что еще?
Хорошо, простая задача:
Нужно сформировать письмо и в нем должно быть :
Уважаемый Анатолий Николаевич ! (для русских)
Шановний Анатоліє Миколайовичу ! (для украицев)
и т.д.
Записей в базе клиентов на данный момент больше 25 тысяч.
1.Как быстро выбрать имена и отчества из таблицы ?
2.Как сделать алфавитку для приемной, где только фамилия и инициалы ?
Sergey Masloff (2008-02-25 14:31:00) [23]Альберт (25.02.08 14:26) [87]
Да дело не в этом. В российских паспортах тоже могут быть составные имена и фамилии. Выгоды от разделения - никакой.
В чем смысл отдельного хранения - я из ветки не выяснил. Экономия места? Спорно будет ли она вообще. Что еще?
Альберт (2008-02-25 14:26:00) [24]
> С каких пор дипломатическим работникам требуется временная
> регистрация?
Подымаю руки, сорри.
Sergey Masloff (2008-02-25 14:02:00) [25]Альберт (25.02.08 13:00) [85]
>А по паспорту, как ?
Вот именно так
>Да, еще и регистрация временная она как была ?
С каких пор дипломатическим работникам требуется временная регистрация?
Альберт (2008-02-25 13:00:00) [26]
> Из реальных я видел имя из 17 слов.Что там имя что отчество
> хрен его знает и пропусти хоть что-то - смертельная обида.
>
А по паспорту, как ? Да, еще и регистрация временная она как была ?
Sergey Masloff (2008-02-25 12:45:00) [27]Ega23 © (17.02.08 13:50) [42]
>Кстати, я бы всё равно нормализацию по именам-фамилиям начал бы от >миллиона человек делать.
И был бы не прав. Не ИМХО.
Из реальных я видел имя из 17 слов.Что там имя что отчество хрен его знает и пропусти хоть что-то - смертельная обида.
Но у нас на вводе висит некая эвристика которая делает примитивный лексический анализ и если видит что-то похожее на имя или отчество которые есть у нее в словаре то говорит пользователю - ты не это имел в виду? и если это то заменяет.
Альберт (2008-02-23 19:44:00) [28]
> ты посвятил нас в свою великую тайну
постепенно тайна открывается :)
Альберт (2008-02-23 19:43:00) [29]
> автор, а как же осетинские и якутские?
->
> узбеки и иже с ними в контору .. будут не вхожи)
Сергей М. (2008-02-23 18:54:00) [30]"Матюгальник на березе голосит, как узбеков, латышей сплотила Русь" (С)
Petr V. Abramov (2008-02-23 18:50:00) [31]
> ЮЮ © (21.02.08 04:55) [72]
> Если исходить из того, что таблица - это объект предметной
> области, то всякий его эккземляр не должен возникать неизвестно
> откуда
ну подумаешь, следующий вопрос будет по поиску дублей
:)
> Но, как тут заметили имен узбеков, монгол и иже подобных
> здесь нет, потому как они мне не нужны.
автор, а как же осетинские и якутские?
Сергей М. (2008-02-23 18:46:00) [32]
> имен узбеков, монгол и иже подобных здесь нет, потому как
> они мне не нужны
Спасибо тебе, о великий, что всего через неделю, всего лишь на 78-м посту ты посвятил нас в свою великую тайну - узбеки и иже с ними в контору к вам будут не вхожи)
Альберт (2008-02-23 18:28:00) [33]
> Это имя собаки ?
> А нафига ?
Нет, код человека, дословно /data of global/, пенсионный.
Если нет данных по паспорту, тогда сверка из пенсионной базы.
> Т.к. если в твоей системе найдется место дюжине квалифицированных
> филологов, которые, и только они, будут заполнять эту таблицу
> - вперед.
>
> Если же Ф.И.О. взято из какого-то аусвайс-а, то это именно
> атрибуты этого документа. Причем в разных они могут быть
> к тому же разными. В документе об образовании стоит, например,
> девичья фамилия, в свидетельстве о рождении написано Наталия,
> а в паспорте - Наталья.
> К тому же из документа абсолютно неясно, Иван там стоит
> или ивАн (большая - ударная), а это извмните два разных
> объкты сущности "Имя" и где-то могут вылезти боком эти особенности
Имена взяты с книги "Что имя твое значит", где представлены все славянские, греческие и германские их производные.
Но, как тут заметили имен узбеков, монгол и иже подобных здесь нет, потому как они мне не нужны.
Anatoly Podgoretsky (2008-02-23 12:16:00) [34]> DiamondShark (23.02.2008 01:06:16) [76]
И для Паскаля тоже в глазах рябит и идет отторжение кода. Это удел СИ подобных языков.
DiamondShark (2008-02-23 01:06:00) [35]
> Толк есть и очень прикольный. Когда форматишь запрос девелопером
> с настройкой ИнитКапс - очень клево получается.
Ни разу не форматил запрос девелопером, я даже не знаю, что такое девелопер. Да и запрос я не помню, когда форматил хоть чем-нибудь, кроме табов в текстовом редакторе.
Но это не суть.
Главное, что идентификаторы с подчёркиваниями очень сильно тормозят чтение. Для языков, вроде Паскаля, это не так страшно, потому что плотность идентификаторов на квадратный метр текста там небольшая. В SQL эта плотность раза в 2--3 больше. Кроме того, Паскаль императивный язык, и его естественно читать строчка за строчкой. SQL не императивный, и его приходится схватывать крупными блоками, что при ряби в глазах значительно труднее.
> В общем, первичный ключ на то и первичный, что однозначно
> определяет уникальные атрибуты записи в таблице. И если
> на то есть несинтетические ключи, а, например, искусственные
> типа некоего кода, то вполне разумно пользоватт именно этот
> код, а не вводить искусственные идентификаторы.
Вообще-то, речь тут больше о том, что приятнее иметь ПК атомарный. А естественный он или генномодифицированный -- дело шестнадцатое.
Игорь Шевченко (2008-02-22 21:42:00) [36]
> С тех пор тока искусственные ключи.
Эта...все оно хорошо, искусственные, в смысле синтетические, ключи..До тех пор, пока не взводится в догму. А оно, как известно учение Маркса всесильно, потому что верно.
В общем, первичный ключ на то и первичный, что однозначно определяет уникальные атрибуты записи в таблице. И если на то есть несинтетические ключи, а, например, искусственные типа некоего кода, то вполне разумно пользоватт именно этот код, а не вводить искусственные идентификаторы.
Я так думаю (с)
ANB (2008-02-22 17:25:00) [37]
> Собственно, если на таблицу никто не ссылаетсяи требуется
> уникальность,
Я тоже так думал. До тех пор, пока не пришла необходимость ссылаться на линковку, на которую ну ни в жисть бы не подумал, что придется. С тех пор тока искусственные ключи. Причем целые. Гуиды тоже идут лесом.
> > Чем так подчеркивание не угодило ?
>
> Ну не нравится оно мне ;) Шуму много, а толку мало, только
> глаза спотыкаются.
Толк есть и очень прикольный. Когда форматишь запрос девелопером с настройкой ИнитКапс - очень клево получается.
Игорь Шевченко (2008-02-21 09:59:00) [38]
> К тому же из документа абсолютно неясно, Иван там стоит
> или ивАн (большая - ударная), а это извмните два разных
> объкты сущности "Имя" и где-то могут вылезти боком эти особенности
Да-да. Особенно увлекательно написание фамилии Щучкин в загранпаспорте.
ЮЮ (2008-02-21 04:55:00) [39]> Так что рекомендую читать про модели "сущности-связи", Анализировать
> предмиетную область. И только после постороения такой модели,
> после ее нормализации приступать к "погружению" в БД
Вот именно.
Таблицв "Имена" возможна только в серьезном Филологическом НИИ занимающегося проблемами имяобразования в России.
Если исходить из того, что таблица - это объект предметной области, то всякий его эккземляр не должен возникать неизвестно откуда, т.е. в системе есть ограниченный круг пользователей системы, который добавляет в таблицу экземппляры в соответствии со входящими документами, а не высасывает с потолка.
Т.к. если в твоей системе найдется место дюжине квалифицированных филологов, которые, и только они, будут заполнять эту таблицу - вперед.
Если же Ф.И.О. взято из какого-то аусвайс-а, то это именно атрибуты этого документа. Причем в разных они могут быть к тому же разными. В документе об образовании стоит, например, девичья фамилия, в свидетельстве о рождении написано Наталия, а в паспорте - Наталья.
К тому же из документа абсолютно неясно, Иван там стоит или ивАн (большая - ударная), а это извмните два разных объкты сущности "Имя" и где-то могут вылезти боком эти особенности
Павел Калугин (2008-02-21 00:42:00) [40]> [69] DiamondShark © (20.02.08 23:46)
> Всё это меркнет пред лицом ПК из трёх строковых полей.
особенно если учесть что из сочетание не уникально