Сведения о вопросе

Htmlщик

09:39, 13th August, 2020

Теги

Создание таблиц базы данных из определений объектов

Просмотров: 451   Ответов: 10

Я знаю, что существует несколько (автоматических) способов создания уровня доступа к данным для управления существующей базой данных (от LINQ до SQL, Hibernate и т. д...). Но я начинаю немного уставать (и я считаю, что должен быть лучший способ делать вещи) от таких вещей, как:

  1. Создание / изменение таблиц в Visio
  2. Использование Visio-х "Update Database" для создания / изменения базы данных
  3. Импорт таблиц в объект "LINQ to SQL classes"
  4. Соответственно, меняется код
  5. Скомпилировать

Как насчет способа создания схемы базы данных из определения объектов / сущностей? Я не могу найти хороших ссылок для таких инструментов (и я ожидал бы какой-то встроенной поддержки, по крайней мере, в некоторых фреймворках).

Было бы прекрасно, если бы я только мог ... :

  1. Изменение определения объекта
  2. Измените код, который управляет объектом
  3. Компилировать (изменения в базе данных производятся автоматически-магически)



  Сведения об ответе

SSESION

22:01, 12th August, 2020

Check out DataObjects.Net -is предназначен для поддержки именно этого случая. Только код, и ничего больше. Его уровень обновления схемы , вероятно, является самым популярным, который вы можете найти, и он действительно полностью абстрагирует обновление схемы SQL.

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


  Сведения об ответе

dumai

06:17, 29th August, 2020

То, что вы описали-это GORM. Он является частью фреймворка Grails и построен для работы с Hibernate (возможно, в будущем JPA). Когда я впервые использовал Grails, это казалось обратным. Я был более удобен с рабочим процессом Rails стиля создания таблиц и позволения фреймворку генерировать леса из схемы базы данных. GORM сохраняет ваши доменные объекты для вас, так что вы создаете и изменяете объекты, он управляет базой данных create/update. это имеет больше смысла теперь, когда я привык к нему. Извините, что дразню вас, если вы не ищете новый фреймворк, но он находится в дорожной карте для выпуска 1.1, чтобы сделать GORM доступным автономно.


  Сведения об ответе

DAAA

09:18, 15th August, 2020

Возможно, вы ищете базу данных объектов .


  Сведения об ответе

crush

17:49, 13th August, 2020

Я считаю, что это та проблема, которую пытается решить платформа Microsofy Entity Framework . Хотя он специально не предназначен для "Compile (the database changes are done auto-magically)", он решает проблему обработки изменений в модели предметной области без огромной зависимости от базовой модели данных.


  Сведения об ответе

appple

06:22, 27th August, 2020

Как предположил Джейсон, object db может быть хорошим выбором. Взгляните на db4objects .


  Сведения об ответе

baggs

16:10, 23rd August, 2020

Когда мы создали первую версию нашего собственного фреймворка (Inon Datamanager), я попросил его прочитать уже существующие таблицы SQL и автоматически создать из них объекты Java.

Когда мои коллеги, пришедшие из небольшого толкового фона, построили вторую версию, они начали с объектов, а затем автогенерировали таблицы.

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

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

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


  Сведения об ответе

lool

15:23, 5th August, 2020

Вроде бы запоздалый ответ, но вот он идет:

Я столкнулся с той же самой проблемой и в конечном итоге написал свое собственное решение для нее, работая только с сервером .NET и SQL. Он в основном реализует процесс, который вы описываете:

  • Все объекты DB хранятся в виде встроенных скриптов CREATE как часть исходного кода
  • Объекты БД настраиваются автоматически (или по запросу) при использовании функции доступа к данным
  • Все изменения, не относящиеся к таблице, также выполняются автоматически (или по запросу) одновременно
  • Изменения таблиц, которые могут потребовать особого внимания для переноса данных, выполняются с помощью (созданных вручную) сценариев изменений также при обновлении базы данных
  • Даже ручные изменения, внесенные в любой объект базы данных, могут быть обнаружены, так что целостность схемы может быть проверена и исправлена
  • Дополнительный облегченный ORM может отображать хранимые процедуры и объекты, а также результирующие наборы (даже несколько)
  • Приложение командной строки помогает синхронизировать исходные файлы SQL с базой данных разработки

Библиотека, включая базу данных, бесплатна по лицензии LGPL.

http://code.google.com/p/bsn-modulestore/


  Сведения об ответе

прога

08:02, 13th August, 2020

Некоторые действительно большие собаки , такие как ERwin Data Modeler, будут возражать против DB. Однако вам нужно иметь большие деньги, чтобы позволить себе этот продукт.


  Сведения об ответе

VCe znayu

10:15, 22nd August, 2020

Я продолжал копаться в некоторых фреймворках "major", и похоже, что Django делает именно то, о чем я говорил. По крайней мере, так кажется с этого экрана.

Есть ли у кого-нибудь замечания по этому поводу? Хорошо ли это работает?


  Сведения об ответе

SEEYOU

14:53, 3rd August, 2020

Да, Django работает хорошо.

да, он будет генерировать ваши таблицы SQL из ваших определений моделей данных (написанных в python)

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

Ruby on Rails имеет еще более продвинутую версию этих функций (Rails миграций), но мне не нравится фреймворк так сильно, я нахожу ruby и rails довольно своеобразными


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться