![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нормализация информации [D6, IB6.x]
Альберт © (2008-02-15 14:32:00)Доброго времени суток.
Вопрос знатокам:
1.Имеет ли смысл имена клиентов выделять в отдельную таблицу, а в основной проставлять только ИД записи имени.
2.Могут ли при этом быть проблемы с сортировкой основной таблицы ?
Прошу привести аргументы за и против.
Заранее спасибо за ответы.
Альберт (2008-02-18 14:21:00) [61]Так я уже понял, еще после 36 поста. Но я отписываюсь, увидев новые советы знающих людей.
ANB (2008-02-18 14:05:00) [62]
> Альберт (18.02.08 11:19) [48]
ИМХО :
Если уж прикручивать такую штуку, то только в качестве вспомогательного справочника. Никаких ссылок, имя по прежнему хранить в текстовом виде. И только по кнопке/сочетанию кнопок, выдавать в качестве доп. сервиса.
Очень похоже было сделано в АСУ Экспресс-2.
Альберт (2008-02-18 11:19:00) [63]
> Хочу напомнить, что далеко не у всех есть Фамилия, Имя и
> Отчество.
> У монголов, например, нет фамилии. Только Имя и Отчество.
>
> У каких-нибудь зимбабвийцев кроме основного имени может
> быть родовое и запасное.
> И т.д.
> Это я всё к тому, что специфику применения справочника тоже
> нужно учитывать.
Спасибо за хороший совет.
> хотя там у него проскакивало "сотни тысяч", т.е. всетаки
> больше на справочник по людям похоже,
Да, вы правы и он вырастет на порядок, постепенно.
> Плюс к этому он будет скорее всего весьма плохим индексом,
> так как на наиболее распространенные имена придется львиная
> доля данных, а следовательно избирательность индекса будет
> очень неоднородной.
Спасибо за хороший совет.
Sergey13 (2008-02-18 08:51:00) [64]ИМХО, экономия байтов тут еще тоже не доказана. Придется вводить индекс на это поле, который возможно по размеру будет сопоставим с данными. Плюс к этому он будет скорее всего весьма плохим индексом, так как на наиболее распространенные имена придется львиная доля данных, а следовательно избирательность индекса будет очень неоднородной.
Anatoly Podgoretsky (2008-02-17 14:28:00) [65]Кроме того экономия байтов тоже не может являться критерием, разве что в терабайтных базах, а усложнение и артефакты налицо.
Anatoly Podgoretsky (2008-02-17 14:26:00) [66]Я бы не назвал вывод фамилий в отдельный справочник нормализацией.
Не говоря уже об возможных аномалиях, сегодня Петров, а завтра Сидоров - это как последствие.
sniknik (2008-02-17 14:08:00) [67]> Кстати, я бы всё равно нормализацию по именам-фамилиям начал бы от миллиона человек делать.
какая разница сколько там людей в базе если сама специфика справочника требует выборок/группировок по именам или фамилиям? будеш "вычленять" имя из общего поля?
главное всетаки не размер базы, а ее специфика. а вот если если на требования специфики можно "забить", ну не нужно там ничего "эдакого", то вторым уже размер, можно провести нормализацию только ради него...
Sergey13 (2008-02-17 13:55:00) [68]2Альберт (15.02.08 17:45) [37]
> про 5 атрибутов, если не жалко времени по подробнее, плиз.
Если ПК одной таблицы состоит из 5 полей, то в ссылающейся на нее таблице должны быть те же 5 полей для ссылки на первую.
Ega23 (2008-02-17 13:50:00) [69]Кстати, я бы всё равно нормализацию по именам-фамилиям начал бы от миллиона человек делать.
sniknik (2008-02-17 13:08:00) [70]> специфику применения справочника тоже нужно учитывать.
с нее вообще надо начинать, а не общие теории разводить.
у меня к примеру местная (для своей конторы) программа по учету работ, так там вообще никакого разделения на имена, фамилии, просто одно поле "ФИО" и пишут, что хотят... и какой смысл "парится" если всего таких записей 500шт (по количеству работников конторы), ну будет там небольшая денормализация, ну и что, все одно никаких поисков/группировок отдельно по именам/фамилиям не бывает, единственное где используется подставляется к основной таблице, показать кто заявку оформлял и выполнял (ну не ID же, т.е. ключ по сотруднику там показывать ;)). сортировка есть конечно если захотят по фамилии (т.к. ее забивают первой) но не пользуется, т.к. работа исключительно с группами по отделам/должностям а такого идиотизма как "посмотреть сколько сделано товарищами с именем Вася например ..." пока нет, и вряд ли будет, а если вдруг когда возникнет, на тот невероятный случай и будем "парится", а не заранее.
но если бы в программе список людей был основным, типа как общесоюзный справочник, или телефонный... тогда бы "моя" огранизация таблицы людей была бы ущербной т.к. там как раз поиск по "Васям" вполне естественен... типа "помню что Вася, помню что в 12й квартире, и вроде на улице Пушкина... ну вы выведите по первым 2м параметрам, если там немного то почитаю и по улицам вспомню..."
а вот так абстрактно, как в [0], к некой базе с неизвестно чем занимающейся..., имхо, бред. (как в общем то практически все абстрактное...)
хотя там у него проскакивало "сотни тысяч", т.е. всетаки больше на справочник по людям похоже, тут бред в естественном ключе... прямо показательный бред, как аргумент в споре естественный vs искусственный можно использовать.
Ega23 (2008-02-17 10:19:00) [71]Хочу напомнить, что далеко не у всех есть Фамилия, Имя и Отчество.
У монголов, например, нет фамилии. Только Имя и Отчество.
У каких-нибудь зимбабвийцев кроме основного имени может быть родовое и запасное.
И т.д.
Это я всё к тому, что специфику применения справочника тоже нужно учитывать.
Правильный_Вася (2008-02-15 18:11:00) [72]
> без подначек
подначки стимулируют мыслительную деятельность
а если они стимулируют язык, тебе не в програмисты, а в менеджеры надо
Альберт (2008-02-15 17:52:00) [73]
> Павел Калугин © (15.02.08 17:45) [36]
Большое Спасибоза толковый ответ, как раз то что нужно и без подначек.
Павел Калугин (2008-02-15 17:45:00) [74]
> Альберт (15.02.08 17:18) [35]
1. не имеет, так же как и не имеет смысла ключом делать документ. ИНН еще куда ни шло но не у всех он есть. а документ? один и тот же Вася Пупкин с паспортом и с загран паспортом уже 2 Васи?
2. проблемы будут
1. со вставкой удалением изменением
2. с написанием горы кода -> "утяжеление" системы
3. операторы взвоют. Особенно если ФИО больше 3-х слов
4. сортировать можно по разным полям без проблем но выборка из одной таблицы все же чуть быстре чем из 2-х
Альберт (2008-02-15 17:45:00) [75]
> 2. А если потребуются таблицы ссылающиеся на твою "основную"
> (ведь логично предположить и наличие НЕосновных), ты будешь
> все 5 атрибутов переписывать для ссылки?
про 5 атрибутов, если не жалко времени по подробнее, плиз.
Альберт (2008-02-15 17:18:00) [76]
> Чего хочется то в конечном итоге?
Максимальную информацию по клиентам.
> Смотря какая цель, можно немного размер базы уменьшить,
> за счет усложнения работы.
> Но решение иногда используется, а критерием является условия
> работы оператора.
Хороший совет, отдельное спасибо.
> 1.А если у человека нет [вообще или с собой] паспорта? Или
> он не российский например?
для этой цели есть документ его заменяющий, причем в отдельной таблице.
Правильный_Вася (2008-02-15 16:50:00) [77]и вообще, второе (третье и т.п.) имя не обязано быть отчеством, тем более производным от мужского имени
пример уже приводили
Остап Сулейман Берта МарияБендер-бей
Сергей М. (2008-02-15 16:47:00) [78]
> Anatoly Podgoretsky © (15.02.08 16:44) [31]
В смысле отцы с традиционно женским (по кр.мене по русским народным представлениям) именем с нек.пор перешли в разряд большинства ?)
Anatoly Podgoretsky (2008-02-15 16:45:00) [79]> Правильный_Вася (15.02.2008 16:42:30) [30]
И вообще астрашируемся.
Программист должен уметь абстрактно думать.
Anatoly Podgoretsky (2008-02-15 16:44:00) [80]> Сергей М. (15.02.2008 16:39:29) [29]
Какие еще меньшинства - большинство