Я пытаюсь придумать дизайн базы данных, который бы работал с Entity Framework 4 Code First.На самом деле, у меня еще нет опыта работы с EF4 Code First, но, насколько я понимаю, если я напишу код, он создаст базу данных и таблицы.
Проблема в следующем.Существуют различные типы аукционов, все они имеют некоторые общие поля и некоторые конкретные.В коде я предполагаю наличие базового абстрактного класса под названием Auction
и подклассов, таких как LowestUniqueBidAuction
и EnglishForwardAuction
и т. Д.
Ничего удивительного там нет.Проблема в том, что я представляю структуру базы данных, чтобы имитировать это.Я представляю себе Auction
стол и LowestUniqueBidAuction
стол и EnglishForwardAuction
стол.В таблице Auction
я представляю внешний ключ в одну из этих двух таблиц для каждой строки в зависимости от типа аукциона, в котором эта строка равна .Я также представляю другой столбец в таблице Auction
с именем производной таблицы аукциона (например, EnglishForwardAuction
).
Проблема в том, что всякий раз, когда я создавал внешний ключ, мне приходилось указывать имя внешней таблицы, на которую указывают ключевые ключи (что имеет смысл).В этом случае, однако, существует одна из многих таблиц, на которые может указывать ключ.Так что здесь много вопросов.Во-первых, я мог просто не использовать внешний ключ и просто использовать обычное поле, но тогда база данных не сможет поддерживать согласованность данных для меня.Второй вопрос: как EF Code First справится с этим?Другими словами, как он узнает, что если я запрашиваю все строки EnglishForwardAuction
из таблицы Auction
, он должен посмотреть на столбец с именем таблицы и затем соединиться с таблицей EnglishForwardAuction
, чтобы получить дополнительные поля?
Кто-нибудь сталкивался с подобными проблемами?
Спасибо,
Сачин