Каковы преимущества/недостатки каждого метода?
Я знаю, что где-то читал где-то в книге или на этом сайте, почему использование наследования таблиц дрябло для Entity Framework 4.
Например, почему бы не создать одну таблицу с именем entityId, datecreated, datemodified и затем унаследовать каждый другой класс в рамках сущности? Тогда мои таблицы для всех других объектов не обязательно должны иметь эти столбцы. Тогда у меня может быть класс человека, наследующий этот базовый класс, а затем определенный человек наследует человека.
Я не уверен в преимуществах этого, хотя и не писал меньший SQL script для генерации базы данных...
Недостатки, которые я вижу, это то, что он делает запрос/просмотр данных непосредственно в SQL большой болью в заднице (вся соответствующая информация разбита на столько таблиц), и я также спросил моего друга, который сказал:
"Самое важное, что торчит для меня, это тот факт, что я бы не хотел, чтобы моя база данных опиралась на текущую структуру наследования моего приложения. Если по какой-то причине я хотел изменить дизайн мое приложение с точки зрения наследования, это не имело бы значения, потому что мои данные не были бы зависимыми от моего текущего дизайна системы. Я считаю, что хранение данных как раз это - хранилище. База данных нормализуется в соответствии с надлежащим дизайном базы данных, но наследование это программный выбор разработки приложений, а не хранения данных, а это только мешает мне использовать его. Наследование очень сложно делать правильно, когда дело доходит до разработки приложения, гораздо проще изменить код приложения, чем изменять и переносить данные базы данных когда наиболее менее опытные разработчики подходят к проблеме, они подходят к ней с наследованием. я тоже, когда я начал развиваться. это логично имеет смысл. однако, как только вы развиваетесь в течение долгого времени, вы узнаете, что делегирование - это действительно лучший способ пойти (услуги, вызывающие услуги в случае soa), и что одноцелевые службы обеспечивают гораздо больше повторного использования, чем наследование ".
Что также имеет смысл для меня.
So
1) В общем, каковы плюсы и минусы наследования и продление
2) В моем конкретном примере выше, что было бы более подходящим?
3) Если мой пример дрянной для одного или обоих, что является хорошим примером для использования наследования и для использования расширения?
Я использовал оба раньше, но поскольку я далек от приправы, я все еще не уверен, как справляться со всеми ситуациями.
10 голосов, 8 фаворитов, более сотни просмотров и никто не может расшириться? = (.