【发布时间】:2010-08-15 00:46:25
【问题描述】:
我正在创建某种拍卖应用程序,我必须确定解决此问题的最优化方式。我使用 BL Toolkit 作为我的 OR 映射器(它有很好的 Linq 支持)和 ASP.NET MVC 2。
背景
我有多个动态创建的 Category 对象,它们作为此类的表示保存在我的数据库中:
class Category
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
}
现在每个Category 对象都可以关联多个InformatonClass 对象,这些对象代表该类别中的单个信息,例如价格或颜色。这些类也由管理员动态创建并存储在数据库中。有一组特定的类别。代表它的类如下所示:
class InformationClass
{
public int Id { get; set; }
public InformationDataType InformationDataType { get; set; }
public string Name { get; set; }
public string Label { get; set; }
}
现在我有了第三个表,表示它们之间的连接,如下所示:
class CategoryInformation
{
public int InformationClassId { get; set; }
public int AuctionCategoryId { get; set; }
}
问题
现在的问题是我需要继承子类别中的所有类别InformationClass。例如,每个产品都会有一个价格,所以我只需要将此 InformationClass 添加到我的根类别中。频率信息可以添加到基本 CPU 类别中,并且应该在派生自 CPU 类别的 AMD 和 Intel 类别中可用。
我必须知道在我的应用程序中哪些InformationClass 对象经常与指定的Category 相关。
所以这是我的问题。对于这个问题,最优化的解决方案是什么?我有一些想法,但我无法决定。
- 将所有类别从数据库加载到
Application表并每次都从该位置获取它们 - 只要类别不会经常更改,它将减少数据库请求的数量,但仍需要使用 Linq-to 进行树搜索-对象 - 发明(我不知道是否可能)一些花哨的 Linq 查询,它可以树搜索并获取所有信息类 ID,而不会对数据库造成太大压力。
- 还有其他好主意吗?
我将不胜感激每一个答案和想法。谢谢大家的建议。
【问题讨论】:
-
@lukasz 什么是拍卖申请
-
你知道,打赌...比如 eBay 之类的...问题也可能与任何具有与其相关联的特定信息的类别的商店有关。
标签: c# linq optimization asp.net-mvc-2 business-logic-toolkit