|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2012, 15:09 | #1 |
Форумчанин
Регистрация: 25.08.2010
Сообщений: 258
|
Много таблиц или одна таблица?
Здравствуйте всем! Вопрос в чем - есть БД, есть допустим 4 вида документа.
У документов ,допустим, большая часть полей сходятся некоторые отличаются. Так вот, как лучше сделать - в разных таблицах держать документы (но так 4 индекса, разработка приложения становится медленнее из за того что нужно обслужовать 4 таблицы) или в одном, но запасом полей (т.с. некоторый поля используются одной табл., некоторые другой, при этом 1 индекс и обслуживается только одна таблица). Как сделать? |
18.05.2012, 15:25 | #2 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Первый вариант. Есть такое понятие в проектировании БД как нормализация и вот второй вариант это жуткий индусский код по части этой самой нормализации. СУБД сама себе решит как ей улучшить время доступа. Но вообще, вы ведь можете использовать и NoSQL решения, какие-нибудь документо-ориентированные key-value хранилища по моему могут подойти под вашу задачу.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
18.05.2012, 15:25 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
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. |
18.05.2012, 15:35 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
в общем случае одна таблица быстрее и проще, а пять таблиц лучше в плане проектирования и последующей поддержки. что выбирать - зависит от конкретного случая. На нормализацию вполне себе можно плевать, но только осознанно.
Одна таблица тоже может быть разной. Часть общих полей (тех, которые важны для поиска и фильтров) хранятся как положено, а остальное сваливается в дополнительный "столбец" в формате XML, например. |
18.05.2012, 15:47 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Зависит от конкретной реализации. Держу по 1-му варианту в одной таблице несколько десятков мелких справочников, часть полей имеет общий логический смысл. Часть полей-параметров для разных справочников используется по разному. Спорное решение, имеющие плюсы и минусы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
18.05.2012, 17:37 | #6 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Если типов документов всего 4 и не так много отличающихся полей, можно и в одной таблице всё держать. Однако, если система планирует разрастаться, то лучше сразу разбивать - 1 таблица documents с общими параметрами и по таблице на каждый тип документа.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
18.05.2012, 19:06 | #7 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
2 таблицы.
|
19.05.2012, 22:00 | #8 |
Форумчанин
Регистрация: 18.04.2007
Сообщений: 135
|
Если документов каждого вида будет много, то конечно лучше держать всё в разных таблицах. Ибо с точки зрения скорости исполнения запросов лучше 4 таблицы с 1000 записей, чем одна с 4000.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание связанных списков или таблиц с фильтром или выборкой | 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 |