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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2012, 13:02   #1
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию Проектирование структуры БД

Здравствуйте.
Кратко опишу задачу.
Есть сущность "Заявка", каждая заявка составляется по шаблону, который содержит все поля, необходимые для заполнения (естественно, в разных шаблонах разное количество полей).
Если количество шаблонов ограничено и находится в пределах разумного, то логично под каждый шаблон создать свою таблицу в БД с соответствующей структурой.
Но если количество шаблонов пополняется и в теории может достигнуть большого числа, то под каждый новый шаблон плодить таблицы, наверное, как-то не очень разумно.
Может быть кто-нибудь сталкивался с похожей задачей как оптимизировать такую структуру, не наплодив таблиц в БД? Или может быть есть какое-то типовое решение?
Заранее спасибо
-MagicAlex- вне форума Ответить с цитированием
Старый 26.09.2012, 18:25   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Но если количество шаблонов пополняется и в теории может достигнуть большого числа, то под каждый новый шаблон плодить таблицы, наверное, как-то не очень разумно.
Если шаблонов меньше 10 000 можете не париться. Ну для реляционных баз.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.09.2012, 19:19   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Я бы таблицы не плодил. По крайней мере попытался бы.
1. Одна таблица, служебное поле с номером (идентификатором) шаблона и поля для размещения данных из любого шаблона. Часть из них несут логическую функцию одинаковую для всех шаблонов. Наверняка ведь будут поля имеющие один и тот же смысл во всех шаблонах. Часть полей для заполнения разноплановыми данными. Последнее не очень нравится, вернее совсем не нравится, но иногда приходится так делать. Неиспользуемые поля в конкретном документе забивать NULL-ом.
2. Две таблицы. 1-ая - заголовок документа с номером шаблона, идентификатором документа, возможно еще информация общая для всех документов. 2-ая дочерняя со ссылкой на заголовок, идентификатором типа данного и его значением в varchar формате. С одной стороны привлектательнее 1-го варианта, но предвижу кучу проблем с запросами и скоростью их выполнения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2012, 09:55   #4
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

Спасибо большое за ответы.
Случай с одной таблицей не подходит, так как разные шаблоны могут кардинально отличаться друг от друга. Вариант с двумя таблицами тоже в голове у меня был, но немного в другой форме, решил его не использовать по причинам, которые вы указали
Буду думать дальше, склоняюсь к тому, чтобы "наплодить" таблиц
-MagicAlex- вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. Лёнка Компоненты Delphi 1 23.04.2012 15:03
Проектирование БД. lovetolaugh БД в Delphi 3 15.06.2011 22:08
проектирование бд NieL Помощь студентам 1 28.04.2011 18:04
Проектирование JKING Помощь студентам 0 02.05.2010 17:56