Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вынос описаний в отдельную таблицу / 6 сообщений из 6, страница 1 из 1
18.11.2008, 13:58:33
    #35660472
MGR
MGR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
Коллеги. Подумалось (чиста теоретический вопрос) - насколько целесообразно длинные описания выводить в отдельную общую таблицу?
Сейчас вот у некоторых клиентов в таблице Customer 300-500 тыщ записей.
Табличка используется активно (много полей, от которых зависит движение ордеров, скидки, виды оплаты и т.п.) во время процессинга.
Размер записей - около 1600 байт. Однако из них около 1000 занимают длинные описания.
Аналогично - таблица Vendor (там правда меньше записей).
Или Inventory (там тоже много описательных полей)

Конечно, эти поля не на 100% заполнены, может только вот Inventory заполнены на 60-80%, в случае Customer - дай бог если на 40%.

Вот и подумалось, а нельзя ли поля типа Description, Name, LongName, etc. которые реально нужны в основном в отчётах да экранах ввода, перенести в отдельную табличку. Общую для всех сущностей.
В системе уже есть подобная табличка, но она хранит блобы с длинным текстом. А вот если сделать универсальную таблицу для описаний?
Типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table Names (
   ID   Integer Identity( 1 , 1 ),
   Name  varchar( 128 ),
   Name0 varchar( 128 ),
   Name1 varchar( 128 ),
   Name2 varchar( 128 ),
   Name3 varchar( 128 )
...

Никто не пробовал подобное?
...
Рейтинг: 0 / 0
18.11.2008, 19:24:14
    #35661603
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
MGR пишет:

> Вот и подумалось, а нельзя ли поля типа Description, Name, LongName,
> etc. которые реально нужны в основном в отчётах да экранах ввода,
> перенести в отдельную табличку. Общую для всех сущностей.

Имеет ли смысл это делать - зависит от СУБД и типов полей.
В некоторых СУБД поля типа TEXT храняться отдельно от
основных записей. Если такого нет, и записи длинные, то
почему бы и нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18.11.2008, 22:50:01
    #35661884
Mr Marmelad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
MGR
Никто не пробовал подобное?

Есть плюсы и минусы в любом из предложенных вариантов. Обычно - традиционно мы храним полную информацию о клиенте в одной - Головной табличке БЕЗ никаких БЛОБов - обычно очень трудно выписывать данные из нее. Блобы вынесены в сторону и порой даже физически в ином месте. Вариации данных клиента разнесены в детали. вариант предложенный по именам - тоже имеет место для случая статистических отчётностей. Например сколько Вась и Петь народилось с такого то по такое то. Обратите внимание что денормализовав один аттрибут сущности в несколько полей вам теперь надо подобрать какие нибудь резоны поискового механизма по ним. Или постоянно заботиться о наличии или отсутсвии данных в Name1, Name2.... Надо ли оно вам - решеть даже не Вам, коллега а бизнесу. Я так думаю...
...
Рейтинг: 0 / 0
19.11.2008, 10:39:07
    #35662546
А6дуллаh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
В SAP тексты очень часто выносятся.
...
Рейтинг: 0 / 0
19.11.2008, 12:04:14
    #35662849
MGR
MGR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
Не, вопрос не в выносе блобов/текстов.
А в выносе варчаров.

Табличка Customer "похудеет" в полтора раза, а Inventory в два раза.
Первая часто используется в процессинге.
...
Рейтинг: 0 / 0
19.11.2008, 12:10:43
    #35662881
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вынос описаний в отдельную таблицу
Я думаю, все зависит от того, как читаются данные.
Если строки без описаний читаются часто, то возможно смысл есть. Если нет, то надо учесть, что при чтении одной строки "без выноса" достаточно прочесть с диска один блок, а "с выносом" - два. Если достаточно часто используется FULL SCAN, то возможно особой разницы и не будет - надо проверить...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вынос описаний в отдельную таблицу / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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