Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 15:09   #1
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию Много таблиц или одна таблица?

Здравствуйте всем! Вопрос в чем - есть БД, есть допустим 4 вида документа.
У документов ,допустим, большая часть полей сходятся некоторые отличаются. Так вот, как лучше сделать - в разных таблицах держать документы (но так 4 индекса, разработка приложения становится медленнее из за того что нужно обслужовать 4 таблицы) или в одном, но запасом полей (т.с. некоторый поля используются одной табл., некоторые другой, при этом 1 индекс и обслуживается только одна таблица).
Как сделать?
RuVarez вне форума Ответить с цитированием
Старый 18.05.2012, 15:25   #2
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Первый вариант. Есть такое понятие в проектировании БД как нормализация и вот второй вариант это жуткий индусский код по части этой самой нормализации. СУБД сама себе решит как ей улучшить время доступа. Но вообще, вы ведь можете использовать и NoSQL решения, какие-нибудь документо-ориентированные key-value хранилища по моему могут подойти под вашу задачу.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 18.05.2012, 15:25   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

5 таблиц. одна - с общими параметрами, остальные 4 связываются с общей как 1 к 1, в них хранится специфичная инфа для каждого документа.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 18.05.2012 в 15:32.
pproger вне форума Ответить с цитированием
Старый 18.05.2012, 15:35   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

в общем случае одна таблица быстрее и проще, а пять таблиц лучше в плане проектирования и последующей поддержки. что выбирать - зависит от конкретного случая. На нормализацию вполне себе можно плевать, но только осознанно.
Одна таблица тоже может быть разной. Часть общих полей (тех, которые важны для поиска и фильтров) хранятся как положено, а остальное сваливается в дополнительный "столбец" в формате XML, например.
pu4koff вне форума Ответить с цитированием
Старый 18.05.2012, 15:47   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Зависит от конкретной реализации. Держу по 1-му варианту в одной таблице несколько десятков мелких справочников, часть полей имеет общий логический смысл. Часть полей-параметров для разных справочников используется по разному. Спорное решение, имеющие плюсы и минусы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.05.2012, 17:37   #6
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Если типов документов всего 4 и не так много отличающихся полей, можно и в одной таблице всё держать. Однако, если система планирует разрастаться, то лучше сразу разбивать - 1 таблица documents с общими параметрами и по таблице на каждый тип документа.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 18.05.2012, 19:06   #7
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

2 таблицы.
=master= вне форума Ответить с цитированием
Старый 19.05.2012, 22:00   #8
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

Если документов каждого вида будет много, то конечно лучше держать всё в разных таблицах. Ибо с точки зрения скорости исполнения запросов лучше 4 таблицы с 1000 записей, чем одна с 4000.
НЕ_АЙС вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание связанных списков или таблиц с фильтром или выборкой sindo Microsoft Office Word 2 25.11.2010 16:59
Одна большая таблица или много маленьких. SlvUn Microsoft Office Access 2 20.11.2009 20:15
Как разделить таблицу на много таблиц с количеством строк = 65535? Тупой SQL, базы данных 8 27.08.2009 12:35
Как написать,чтобы одна таблица заполнялась на основании другой при определенных условиях Alexm77 Microsoft Office Excel 21 26.05.2008 23:35
Много таблиц, выборочное удаение строк Ice_Juice Microsoft Office Excel 1 11.03.2008 09:05