Мне нужен совет людей относительно того, является ли это наилучшим способом достижения того, чего я хочу.Заранее извиняюсь, если это немного субъективно.
Я хочу использовать Entity Framework V.1 для создания чего-то похожего на следующие классы C #:
abstract class User
{
public int UserId;
public string TelephoneNumber;
}
class Teacher : User
{
public string FavorateNewspaper;
}
class Pupil : User
{
public string FavorateCartoon;
}
Мне нужен совет людей, так каккак лучше всего сохранить эту информацию.
Я планирую использовать SQL Server и обычного поставщика членства.Это создаст для меня таблицу с именем aspnet_Users.Будет две роли: Учитель и Ученик.
Я добавлю в таблицу поля aspnet_Users, которые являются общими для обеих ролей.Затем создайте tbl_Teachers и tbl_Pupils для хранения информации, относящейся к одной роли.
Итак, моя база данных будет выглядеть примерно так:
aspnet_Users
int UserId
varchar TelephoneNumber
tbl_Teachers
int UserId
varchar FavorateNewspaper
tbl_Pupils
int UserId
varchar FavorateCartoon
Конечно, идея состоит в том, что я могу сопоставить данныев aspnet_Users к этому в tbl_Teachers или tbl_Pupils, присоединившись к UserId.
Итак, подведем итог: мои вопросы:
Является ли структура моей базы данных лучшим вариантом для достижения этих классов?
Стоит ли пытаться обернуть сущности в мои собственные классы POCO?
Следует ли изменить структуру базы данных так, чтобы EF создавал сущности, которые ближе к нужным классам?
РЕДАКТИРОВАТЬ: Я перестроил свой вопрос, чтобы было немного яснее, что я спрашиваю.