Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2014, 20:21   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,455
По умолчанию Обновление таблицы от версии к версии. Как?

Доброго времени суток!

Что вы делаете, если изменили структуру таблицы, добавили новую?
Человек_Борща вне форума Ответить с цитированием
Старый 13.09.2014, 22:08   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,855
По умолчанию

Ну, во-первых, проектировать надо так, чтобы не пришлось потом менять ни структуру ни количество таблиц, хотя добавление можно предусмотреть для добавления независимых фич.
Во-вторых, на этапе постановки задачи, при подозрениях на необходимость серьёзных перемен можно рассмотреть задействование ОРМ.

В-третьих, лично я для некоторых задач использую генераторы и построители. Как для SQL кода, так и для дельфи кода. С SQL-то понятно, написал скрипт обхода по всем таблицам, чтение полей, и генерации SQL кода в тексте для хранимых процедур (если что, речь об SQL SERVER, моей основной субд), часть процедур, ессно, пишется руками. Построение кода в дельфи - хитрее, во-первых надо задекларировать енум для всех таблиц (по одному значению на каждую) + один для общего кода, потом построить необходимый набор компонентов (датасурсы, адосторедпроцедуры, и ещё какие потребуются) циклом по описанному енуму. Связи между таблицами для всяких гридов делаются динамически, перестраиваются датасеты с привязками по автоподстраиваемым лукап-полям, с функциональностью определения нужных связей через те же енумы и имена-строки, для чего соблюдается политика именования всех причастных сущностей. Вся логика же заложена преимущественно в написанных руками хранимках, автогенерированные хранимки в основном для справочных таблиц, где единообразие.
Могу показать наработки в какой-то части, но персонально и кусками.

В-четвёртых, всё делается полностью руками. Так у меня на работе, в принципе, это не смертельно, полёт нормальный.
phomm вне форума Ответить с цитированием
Старый 16.09.2014, 00:08   #3
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

1 вариант
Ведем разработку на копии базы, которая в продакшене. Сделали ТЗ запланированные на версию, потом находим различия по метаданным между двумя базами, формируем скрипт, и накатываем его на базу требующую обновления... и так от версии к версии...

2 вариант
"Разрабатывать базу данных скриптами", т.е. есть некая эталонная база, разработку ведем на копии данной базы, после изменения процедур и т.д. формируем скрипт различий, и так по каждой фиче... скрипты складываем, где нибудь в СКВ... в итоге имеем эталонную базу, которую можем собрать на любом стенде для тестов или для пользования...

p/s/ я считаю не стоит пытаться проектировать структуру которую не придется менять, лучше проектировать так, что бы потом было легко изменять... ибо никогда неизвестно чего захочет заказчик...
maLoy*508 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить шаблон версии 9.7 на движок версии 9.8? Vallerik WordPress и другие CMS 1 26.03.2013 11:34
Как использовать пробные версии программ постоянно d1813 Помощь студентам 2 08.02.2011 11:57
Обновление программы по сети до новой версии Letnab Работа с сетью в Delphi 4 29.07.2010 10:47
Программа проверяет обновление новой версии программы xitroi Общие вопросы Delphi 24 15.07.2010 15:33
как в BIOS версии V1.0, Тип AMI, CD-ROM поставить в приоритете wowan.mix Компьютерное железо 6 24.02.2010 19:21