Как я должен организовать свой основной ddl сценарий

Это также происходит со строками:

>>> s = b = 'somestr'
>>> s == b, s is b, id(s), id(b)
(True, True, 4555519392, 4555519392)

Теперь все кажется прекрасным.

>>> s = 'somestr'
>>> b = 'somestr'
>>> s == b, s is b, id(s), id(b)
(True, True, 4555519392, 4555519392)

Это тоже ожидается.

>>> s1 = b1 = 'somestrdaasd ad ad asd as dasddsg,dlfg ,;dflg, dfg a'
>>> s1 == b1, s1 is b1, id(s1), id(b1)
(True, True, 4555308080, 4555308080)

>>> s1 = 'somestrdaasd ad ad asd as dasddsg,dlfg ,;dflg, dfg a'
>>> b1 = 'somestrdaasd ad ad asd as dasddsg,dlfg ,;dflg, dfg a'
>>> s1 == b1, s1 is b1, id(s1), id(b1)
(True, False, 4555308176, 4555308272)

Теперь это неожиданным.

14
задан Mark Harrison 18 August 2008 в 16:17
поделиться

7 ответов

Что Вы имеете, там, кажется, довольно хорош. Моя компания имеет при случае, для достаточно больших баз данных, сломанных это еще больше, возможно, к уровню отдельного объекта. Таким образом каждый table/index/... имеет свой собственный файл. Может быть полезным, может быть излишество. Действительно зависит от того, как Вы используете его.

домен @Justin

By главным образом всегда достаточен. Я соглашаюсь, что существуют некоторые сложности для контакта с при выполнении его этот путь, но это должно быть достаточно легко обработать.

я думаю, что этот метод обеспечивает немного больше разделения (который в большой базе данных Вы приедете для понимания), все еще делая себя довольно управляемым. Мы также пишем сценарии Perl, которые делают большую обработку этих файлов DDL, так, чтобы могла бы быть опция хорошего способа обработать это.

1
ответ дан 1 December 2019 в 15:13
поделиться

Если Вы ищете средство автоматизации, я часто работал с EMS SQLManager, который позволяет Вам генерировать автоматически ddl сценарий от базы данных.

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

Потребность в индексах не могла бы быть правильно оценена на этапе ddl. Необходимо будет просто объявить их для основных / внешних ключей. Другие индексы должны быть созданы позже, после того как представления и запросы были определены

1
ответ дан 1 December 2019 в 15:13
поделиться

@Adam

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

Только проблема состоит в том, если некоторые домены (в этой несколько унаследованной системе) сильно связываются. Плюс Вы должны поддержать зависимости между Вашими различными нижними индексами.

1
ответ дан 1 December 2019 в 15:13
поделиться

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

курсор А по следующим утверждениям добивается цели.

Select * From Information_Schema.Table_Constraints 

Select * From Information_Schema.Referential_Constraints
1
ответ дан 1 December 2019 в 15:13
поделиться

Я думаю, что основная идея хороша.

хорошая вещь о создании всех таблиц сначала и затем создании всех ограничений, то, что таблицы могут быть составлены в любом порядке. Когда я сделал это, у меня был один файл на таблицу, которая я вставил каталог под названием "Таблицы" и затем сценарий, который выполнил все файлы в том каталоге. Аналогично у меня была папка для ограничительных сценариев (который сделал внешний ключ и индексы также), которые выполнялись, когда после того, как таблицы были созданы.

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

, Таким образом, порядок был бы

  1. , создание таблицы
  2. добавляет, что индексы
  3. добавляют, что ограничения

Затем

  1. добавляют, что триггеры
  2. добавляют хранимые процедуры

На моем текущем проекте, мы используем MSBuild для запущения скриптов. Существуют приблизительно дополнительные цели , что можно добраться для него, которые позволяют Вам называть sql сценарии. В прошлом я использовал жемчуг, который был прекрасен также (и пакетные файлы..., которые я не рекомендую - the're слишком ограниченный).

5
ответ дан 1 December 2019 в 15:13
поделиться

Я ранее организовал свой код DDL, организованный одним файлом на объект, и сделал инструмент, который объединил это в единственный сценарий DDL.

Мой бывший работодатель использовал схему, где вся таблица DDL была в одном файле (сохранена в синтаксисе оракула), indicies в другом, ограничениях в третьих и статических данных в одной четверти. Сценарий изменения был сохранен в параллели с этим (снова в Oracle). Преобразование в SQL было ручным. Это была путаница. Я на самом деле записал удобный инструмент, который преобразует Oracle DDL в SQL Server (это работало 99,9% времени).

я недавно переключился на использование Система Команды Visual Studio для профессионалов Базы данных . До сих пор это хорошо работает, но существуют некоторые незначительные сбои при использовании функций CLR в базе данных.

0
ответ дан 1 December 2019 в 15:13
поделиться

есть аккуратные инструменты, которые будут перебирать весь сервер sql и извлекать все таблицы, представления, сохраненные процедуры и определения UDF в локальную файловую систему в виде сценариев SQL (текстовые файлы). Я использовал это с 2005 и 2008, хотя не уверен, как это будет работать с 2000. Проверьте http://www.antipodeansoftware.com/Home/Products

1
ответ дан 1 December 2019 в 15:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: