【问题标题】:How do I separate my entities from database model?如何将我的实体与数据库模型分开?
【发布时间】:2010-11-20 21:06:36
【问题描述】:

我需要一些帮助来组织好我的数据模型。
我正在编写一个应用程序,它将是一个简单的笔记本。我使用三层架构 = 业务逻辑、数据逻辑、数据库访问。
我想使用标签系统,这样在应用程序中搜索信息会更容易。这里有几个问题
- 由于关注点分离,实体类和支持通过这些实体进行标签搜索的类必须不同。那么,最好的方法是封装还是继承?
- 将实体类与检索并向数据库提供信息的类分开是个好主意吗?如果是,它将是 4 个级别 - 实体类、数据库类、标签搜索助手和 BL 类。

【问题讨论】:

    标签: .net oop separation-of-concerns n-tier-architecture


    【解决方案1】:

    这是一些非常笼统的问题,所以我无法涵盖太多。

    一般来说,如果有疑问,请避免继承。应谨慎使用继承,很少使用真正的继承。接口和聚合大多更合适。

    我不明白你的标签搜索助手。标签是实体,标签的处理是业务逻辑。根据标签搜索实体可能会使用接口,并且仍然是业务逻辑。

    “检索并向数据库提供信息”的类是什么?您是在谈论数据访问层吗?我会寻找一些现有的图书馆或技术来访问适合您需求的数据库。我正在使用 NHibernate,但我认为这对您的应用程序来说太过分了。周围还有很多其他产品。

    根据系统的复杂性,您需要尽可能多的分离。我知道,帮不上什么忙。

    【讨论】:

    • 那么,最好在业务逻辑中而不是在数据层中处理 search-over-tag ?好的,我明白了。
    • BL 使用此 (DAL) 的某些查询。这完全取决于技术来说明如何以及是否可以对任何实体类型进行通用处理。
    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 2020-06-05
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多