Работа над проектом, в котором у меня есть более или менее карт-бланш для изменения схемы базы данных и объектной модели (неплохая позиция. (C :) Предположим, у меня есть тривиальное дерево наследования, подобное:
class Parent
{
public int ID { get; set; }
}
class Child : Parent
{
// some fields
}
Лучше ли иметь схему базы данных, в которой дочерний идентификатор и родительский идентификатор совпадают (например, родительский первичный ключ равен IDENTITY (1,1), дочерний первичный ключ назначен и является внешним ключом NOT NULL для родительская таблица), или дочерняя таблица должна поддерживать свой собственный первичный ключ и сохранять ссылку на родительскую таблицу в другом поле? Какие соображения следует учитывать в этом случае? Каковы плюсы и минусы каждого подхода? NHibernate поддерживает оба, верно?