Определение структуры таблицы для базы данных? - PullRequest
1 голос
/ 02 июля 2010

До сих пор мой опыт работы с базами данных всегда работал со слоем промежуточного определения, который у нас есть, где я работаю.т. е. SQL не был написан напрямую для определений таблиц, а был сгенерирован из промежуточного файла, в котором записаны сценарии SQL для создания соответствующих таблиц, сценарии обновления между изменениями схемы и вспомогательные функции для выполнения простых запросов / обновлений / вставок / удалений избаза данных.

Сейчас я нахожусь в ситуации, когда у меня нет к ней доступа, по причинам, по которым я не пойду, и я чувствую себя немного растерянным в том, что делать.Мне нужно иметь небольшое количество таблиц в базе данных, и я не уверен, что обычно делается для управления определениями таблиц.

Обычно люди просто используют сценарий SQL, который выполняет создание таблиц в качестве своего определения,или все просто используют IDE, которая управляет определением в отдельном файле и регенерирует сценарий SQL для создания таблиц?

Я бы действительно предпочел не вводить зависимость от конкретной IDE, посколькумы все знаем, что разработчики - нытики, которые склонны к религиозным дебатам по мелочам.

Ответы [ 6 ]

6 голосов
/ 02 июля 2010

Откройте ваш любимый текстовый редактор -> Начните писать сценарии CREATE -> Сохранить -> Поместить в Source Control

Этот скрипт теперь становится основой для вашей базы данных. Каждый раз, когда происходят изменения схемы, они возвращаются в сценарии, чтобы не потеряться.

Это ваше определение.

Я считаю, что это более надежно, чем в зависимости от какой-либо конкретной IDE / платформы, генерирующей эти сценарии для вас.

1 голос
/ 02 июля 2010

Вы можете использовать один из инструментов моделирования данных, который создает сценарии для вас, если вы начинаете разработку базы данных и в конечном итоге хотите создать ее для вас.Некоторыми инструментами для этого являются Erwin, Fabforce и т. Д. (Хотя и не бесплатно)

Если у вас есть доступ к IDE, такой как SQL Management studio, вы можете создать их с помощью довольно простого графического интерфейса.

Если вы пишете свой собственный код, всегда лучше написать свои собственные сценарии на основе хорошего шаблона, чтобы вы покрывали все свойства определения таблицы, такие как file_group, Collation и тому подобное.Надеюсь, это поможет

После того, как вы создадите базовую копию, создайте сценарии и получите базовую справочную копию, чтобы вы могли вносить в них «инкрементные» изменения и управлять ими в системе контроля версий.

1 голос
/ 02 июля 2010

Мы сами пишем сценарии и храним их в системе контроля версий, как и любой другой код. Затем все сценарии, которые подходят для конкретной версии, группируются и продвигаются вместе. Обязательно используйте alter table при изменении существующих таблиц, потому что вы не хотите удалять их и создавать заново, если у них есть данные! Я использую падение и повторное создание для всех других объектов, хотя. Если вам нужно добавить записи в конкретную таблицу (обычно это поиск какого-то типа), мы делаем это и в скриптах. Тогда это также продвигается с остальной частью кода версии.

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

0 голосов
/ 02 июля 2010

Есть несколько способов получить то, о чем вы просите. Старый традиционный способ - иметь готовый файл сценария с приложением, в котором есть оператор CREATE TABLE.

Если вы разработчик, а также корпоративный Java-разработчик, вы можете сгенерировать полную схему, используя постоянную библиотеку Hibernate. Вот как

Если вы пользователь уровня DBA, вы можете взять экспорт схемы из одной среды и импортировать ее в текущую среду. Это стандартная практика среди администраторов баз данных. Но это требует доступа администратора, как вы можете видеть. Кроме того, методы зависят от базы данных, которую вы используете (oracle, db2 и т. Д.)

0 голосов
/ 02 июля 2010

Если ваша схема слишком сложна для описания в SQL, у вас, вероятно, есть другие проблемы, более острые, чем в какой IDE. Используйте моделирование документация , если вам нужно графическое представление, но да, вам не нужна IDE.

0 голосов
/ 02 июля 2010

Хотя я использую TOAD для Oracle, я всегда пишу сценарии для создания объектов базы данных вручную.Это дает вам (и вашим администраторам баз данных) больше контроля и знаний о том, что и как создается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...