|
|
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
У меня БД частного брачного агенства. Все данные хранятся в одной таблице "Анкеты". Там много повторяющейся информации. Например для каждого клиента указывается национальность. название города, знак зодиака . образование. Ну все это в текстовом виде. Как поступить с точки зрения теории нормализации я знаю. Но думаю стоит ли? Скажем база будет работать на мощном компе с большим количеством оперативных мозгов. Место на винте , также предостаточно. Тормозов быть не должно. Индексов наделал. Количество записей больше 30000 тысяч не будет . Вроде по идее напрашивается мысль нормализовать таблицу с анкетами. Ведь одна из причин применения нормализации состоит в более эффективном хранении информации в базе. Т.е инфа не дублируется. Проще организовать доступ к таблице. Но все таки есть и плюсы хранения данные в одной таблице. Как думаете все таки стоит менять структуру таблицы "Анкета" , чтобы получить n-ное число нормализованных таблиц? Или с учетом , что база будет работать на мощном компе не стоит и оставить все в одной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:06 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Одна из возможных проблем - если понадобится изменить одно из этих названий. Например, все выбирали из комбобокса и заносили в базу слово агеНство, а потом кто-то случайно узнал, что агенТ пишется через Т. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:15 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
оставить все в одной таблице Ну и оставь Будет у тебя как в одной ментовской базе - "азербайджанец", "азырбайджанец", "азербайджанка" и "вампирчик" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:21 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 ВС Думаете все таки надо нормализовать структуру? Ну да например при указании национальности ошиблись и набрали "грузын" , а не "грузин". Но можно же в отдельной таблице хранить название национальностей и юзеру с помощью комбобокса можно выбирать только существующие. Тогда ошибки не будет. Правда может появиться какой то "кекс" с национальностью ,которая отсутствует в отдельной таблице. Тогда эту национальность сначала нужно добавлять туда. А потом из комбобокса. Или сразу "врубить" все возможные национальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:23 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
что-то меня на модераторбол пробило. не перенести ли в "Проектирование БД"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:24 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 ЛП Не надо модерить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:27 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
> Не надо модерить И зря. Там тебе ответят люди, больше занимающиеся именно этим. Правда, Репликант, наверное, ссылками закидает, но это ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:29 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:35 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
авторНо можно же в отдельной таблице хранить название национальностей и юзеру с помощью комбобокса можно выбирать только существующие. Тогда ошибки не будет. А это уже будет нормализация. авторПравда может появиться какой то "кекс" с национальностью ,которая отсутствует в отдельной таблице. Тогда эту национальность сначала нужно добавлять туда. А потом из комбобокса. Либо оставить поле для свободного текста на случай, когда в комбобоксе нет. авторИли сразу "врубить" все возможные национальности. Это невозможно. Их в одной Африке несколько сотен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:40 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
> Их в одной Африке несколько сотен А в нашей классификации от Госкомстата их вполне конечное кол-во. Все неизвестные обозначаются "прочие". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:43 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Хорошо, когда все клиенты из Совка. А если какие-нибудь иностранцы придут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 15:54 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
В этой классификации и "иностранных" национальностей порядком. И потом, как решаются в загсах и паспортных столах спорные вопросы - можно спросить у Нуфа. :) Потемкин и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:02 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:20 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Там нет даже эфиопов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:22 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 ВС >А это уже будет нормализация. Если создам уникальный ключ в главной таблице и внешний в подчиненной. А если это не сделать какая же это нормализация! Поясню что я имел ввиду. Нормализация это когда у меня будет следующее: Создам таблицу где буду хранить названия национальностей и ключевыи полем будет скажем числовое "код национальности". В подчиненной таблице уже не буду создавать поле где будет храниться название национальности, а создам числовое поле внешнего ключа( код национальности) . Останется связать таблицы 1:М. При выборе национальности в таблицу анкет попадет код национальности. Это нормализация. Но. Я имел ввиду. Что будут две таблицы. Национальности (в них только название национальностей) и Анкета (там тоже будет текстовое поле национальность). Юзер сможет занести в таблицу Анкета только значение из таблицы Национальности. Никаких ключей , связей. Один хрен.Если отсутствует какая то национальность, то нужно ее заносить в отдельную таблицу. А с нормализацией нужно еще и код национальности вносить. В любом случае получается пополам. Можно и без нормализации обойтись мне кажется. К примеру запросы на обновление здесь не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:25 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
В частном случае ключевое поле справочника может быть текстовым. И может совпадать с самим полем, показываемым на экране. А если выбор значений ограничен содержимым справочника, то это уже от нормализации не отличается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:28 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 ВС Ну да создать отдельную таблицу с одним ключевым полем "название национальности" и в подчиненной создать тоже текстовое поле как внешний ключ. Да , таблицы связаны. Вроде бы нормализация. Но все равно дубляж ! Числовое поле естественно меньше "сожрет " места. Но так уж это важно, если база по сути не большая и на винте места полно? Полностью избежать дублирования всё таки нельзя. Все равно в подчиненной будет дубляж , уж если не названий национальностей,то их кодов. Но это эффективней, чем хранить название национальностей всюду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:37 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 Саныч почти не отличается осталось только добавить связь по ключевому полю и обеспечение ссылочной целостности сделать. а следующим шагом - избавится от текстового ключа, заменив его числовым. и придти к тому, от чего так долго убежать пытались. все таки надо это перенести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:38 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
не, не буду переносить. засмеют :) 2 Eternal Ты из за чего весь этот гемор затеял? Связь лениво построить? Или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:40 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Все, я определился. Если хочется сделать абсолютно все в одной таблице, максимум справочники для выбора, причем без ссылочной целостности, никаких связей и ключей, и количество записей не превышает 30000 - ЭКСЕЛЬ ТЕБЕ В РУКИ Перенесу в VB :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:49 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
2 ЛП Да я уже запросов / форм / процедур и функций кучу на VBA/DAO наклепал ... Вроде все чудненько. Но проверил работу базы с 80 тыс. записей и сел в лужу. База больше минуты запускалась (море же индексов) вот я и подумал , что надо может нормализовать большую таблицу. Не смейся , скажешь "раньше надо было думать", а я прикинул и решил обойтись без нормализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 16:52 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Как связаны"море индексов" и "база больше минуты запускалась"??? а я прикинул и решил обойтись без нормализации. До того, как сел в лужу, или после? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 17:11 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Да напрямую , попробуй таблицу скажем с 20 полями без индексов забить 50000 записями. А потом добавь индексы почти к любому полю. И посмотри на закономерные "тормоза". В лужу я еще пока не совсем сел Если только стою в ней одной ногой. Хотя как сказать еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 17:26 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
повторяю. как связаны наличие индесков и скорость открытия базы??? есть индекс - база открывается полчаса, нет индекса - полсекунды? Не верю. А потом добавь индексы почти к любому полю Что значи "почти к любому"? Ко всем 20 полям что-ли? Тогда уж добавь и составные индексы. Сначала все возможные из двух полей, потом все возможные из трех, и так до индексов из всех 20 полей в разном порядке. Лечиться... Однозначно. И посмотри на закономерные "тормоза". Тормоза в чем? В тракторе? бред полный. у меня почему-то таблицы с 300000 записей по 30 полей каждая с кучей индексов, а тут оказывается должны быть закономерные тормоза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 17:43 |
|
||
|
Нормализация. В каких ситуациях можно ее не делать?
|
|||
|---|---|---|---|
|
#18+
Не надо никуда переносить. Я сам пришел Нормализация вовсе не предназначена для ускорения доступа к данным. Нормализация предназначена для поддержания целостности и непротиворечивости данных. Хорошая база всегда нормализована. Вопрос о частичной денормализации всегда решается после долгих и мучительных раздумий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2004, 22:49 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32377388&tid=1677162]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 564ms |

| 0 / 0 |
