понедельник, 8 сентября 2014 г.

Наследование в MS SQL Server с использованием Entity Framework (EF)

Ситуация 

Созреваю на применение наследования в базе данных. Работаю с MS SQL Server 2008 (планирую переход на 2012)

Моя мотивация: 

в системе есть несколько типов документов, а будет еще больше.
И у всех документов нужны типовые реквизиты:

  • состояние (проведен/не проведен), 
  • дата создания, 
  • автор, 
  • дата изменения, 
  • последний изменивший,
  • пометка удаления


Дублировать эти поля во всех типах документов очень не хочется.
Хотелось бы создать таблицу "Базовый документ" со всеми этими служебными полями и остальные документы наследовать от неё.

Изучение темы

К сожалению, на нашел в MS SQL каких-нибудь стандартных механизмов. Похоже, придется все делать "ручками".

Похоже выбирать буду метод TPT (Table Per Type)

Все материалы привожу ниже

Материалы по теме

Статья про реализацию наследования в БД
Implementing Table Inheritance in SQL Server
тут про бд описано нормально, но не освещено как с этим "взлетать": а именно, как работать в прикладном решении
http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server

Несколько веток на Stackoverflow
How can you represent inheritance in a database?
http://stackoverflow.com/questions/3579079/how-can-you-represent-inheritance-in-a-database

Table “Inheritance” in SQL Server
http://stackoverflow.com/questions/529256/table-inheritance-in-sql-server


Статью по связке с Entity Framework
Implementing Inheritance with the Entity Framework 6 in an ASP.NET MVC 5 Application (11 of 12)
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-inheritance-with-the-entity-framework-in-an-asp-net-mvc-application


Inheritance in the Entity Framework
http://blogs.msdn.com/b/adonet/archive/2007/03/15/inheritance-in-the-entity-framework.aspx

EF Designer TPT Inheritance
http://msdn.microsoft.com/en-us/data/jj618293.aspx

EF Designer TPH Inheritance
http://msdn.microsoft.com/en-us/data/jj618292.aspx

Комментариев нет:

Отправить комментарий