Ситуация
Созреваю на применение наследования в базе данных. Работаю с 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
Комментариев нет:
Отправить комментарий