为定价系统创建数据库的更好方法

时间:2012-07-08 09:18:53

标签: database asp.net-mvc-3 database-design

我需要创建一个价格表系统,所以我将在我的数据库中创建这三个表。

  • PricingTable (ID, Name, ServiceID, Style)
  • PricingTablePackages (ID, PricingTable_ID, Title, Price, PricePerTime, Info, Flag, Link)
  • PricingTablePackagesFeatures (ID, PricingTablePackages_ID, Feature, Value, MoreInfo)

此处一个PriceTable可以容纳多个PricingTablePackages,一个PricingTablePackage可以容纳多个PricingTablePackagesFeature

有没有办法设计出更好的模型?在单个数据库表中?

我将为这些表创建MVC3模型,那么在MVC3模型中执行此类数据库表的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

当您需要使用Entity Framework时,我会使用公共虚拟变量来表示“延迟加载”值:

(变量类型可能会关闭,具体取决于您对每个变量的确切要求)

public class PricingTablePackages
{
    public int ID { get; set; }

    public int PricingTableID { get; set; }

    public virtual PricingTable PricingTable { get; set; }

    public string Title { get; set; }

    public decimal Price { get; set; }

    public decimal PricePerTime { get; set; }

    public string Info { get; set; }

    public bool Flag { get; set; }

    public string Link { get; set; }
}

public class PricingTablePackagesFeatures
{
    public int ID { get; set; }

    public int PricingTableID { get; set; }

    public virtual PricingTable PricingTable { get; set; }

    public string Feature { get; set; }

    public string Value { get; set; }

    public string MoreInfo { get; set; }
}

public class PricingTable
{
    public int ID { get; set; }

    public string Name { get; set; }

    public int ServiceID { get; set; }

    public virtual Service Service { get; set; } // if there is a Service class

    public string Style { get; set; }
}