Каков наилучший способ реализовать семейное древо с использованием ASP.NET MVC & SQL Server - PullRequest
4 голосов
/ 15 мая 2011

Я пытаюсь создать сайт Семейного древа (для личного использования) с использованием MVC3 и SQL Server 2008, однако я относительно новичок в MVC3 (используя Razor & Entity Framework), но знаю SQL Server достаточно хорошо. Я очень разочарован и испытываю желание разработать веб-сайт с использованием WebForms, так как я очень хорошо знаком с этой технологией.

Мой вопрос состоит в том, что я разделен на следующие два подхода, но застрял в том, как реализовать либо с использованием MVC3 и Entity Framework: 1) использование таблицы Person, содержащей информацию о человеке, и таблицы мостов для хранения отношений между людьми, которые хранятся в таблице Person.

2) Вложенные множества, хранящие всю информацию в одной таблице.

Может кто-нибудь, пожалуйста, дайте мне несколько указаний о том, как мне начать, предпочтительно используя подход «Вложенные наборы», поскольку я хотел бы, чтобы выполнение чтения иерархии было как можно более быстрым, поскольку это будет основной целью сайт.

Я надеюсь, что предоставил достаточно информации, если нет, пожалуйста, спросите меня для более подробной информации.

1 Ответ

2 голосов
/ 15 мая 2011

Способ организации ваших данных в хранилище данных имеет мало общего с MVC. Весь доступ к данным в M-части (модели) абстрагирован, и то, как он реализован в бэкэнде, не имеет значения, уровень модели может отличаться, но все равно будет представлять тот же уровень контроллеру (C-часть.)

Это как раз и является причиной использования системы, подобной MVC. Вы можете (например) реализовать веб-сайт MVC, используя MS SQL, а затем перейти к Oracle. Единственный код, который необходимо изменить, - это код в модели. MVC позволяет разделить проблемы.

Итак, чтобы ответить на ваш вопрос: Реализуйте дизайн SQL так, как вы думаете, будет работать лучше всего. Затем при написании модели она будет «переведена» в интерфейс, необходимый для контроллеров и представления.


Coda - лично я считаю, что эти данные проще реализовать с использованием более чем одной таблицы, я думаю, что это делает запросы более понятными. Ваш пробег может отличаться.

...