【问题标题】:What is the best way to implement a family tree using ASP.NET MVC & SQL Server使用 ASP.NET MVC 和 SQL Server 实现家谱的最佳方法是什么
【发布时间】:2011-08-25 17:03:51
【问题描述】:

我正在尝试使用 MVC3 和 SQL Server 2008 创建一个家谱网站(供个人使用),但是我对 MVC3(使用 Razor 和实体框架)相对较新,但对 SQL Server 非常了解。 我很沮丧,很想使用 WebForms 开发网站,因为我非常熟悉这项技术。

我的问题是我分为以下两种方法,但我坚持如何使用 MVC3 和实体框架来实现: 1) 使用一个包含个人信息的 Person 表和一个桥接表来存储 Person 表上持有的个人之间的关系。

2) 将所有信息存储在一张表上的嵌套集。

有人可以请给我一些关于如何开始的指导,最好使用嵌套集方法,因为我希望读取层次结构的性能尽可能快,因为这将是网站。

希望我已经提供了足够的信息,如果没有,请向我询问更多详细信息。

【问题讨论】:

  • 在一般情况下,家谱实际上并不是树状的。 (想想亲戚之间的代际婚姻。还有与婚姻无关的孩子。更像是一个网络而不是一棵树。)您可能希望确保嵌套集合能够适应这种情况。

标签: sql-server database-design family-tree


【解决方案1】:

在数据存储中组织数据的方式与 MVC 关系不大。所有的数据访问都抽象在 M 部分(模型)中,它在后端如何实现并不重要,模型层可以不同但仍然向控制器(C 部分)呈现相同的层。

这正是使用像 MVC 这样的系统的原因。您可以(例如)使用 MS SQL 实现一个 MVC 网站,然后再转移到 Oracle。唯一需要更改的代码是模型中的代码。 MVC 允许关注点分离。

所以,回答您的问题:以您认为最有效的方式实施 SQL 设计。然后在编写模型时,它将被“翻译”为控制器和视图所需的接口。


Coda - 我个人认为使用多个表来实现这些数据更容易,我认为它使查询更清晰。您的里程可能会有所不同。

【讨论】:

    猜你喜欢
    • 2010-09-13
    • 2011-11-10
    • 2010-09-06
    • 2011-04-27
    • 2015-12-10
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多