2014-12-02 91 views
0

我们目前正在开发一个供人们购买和销售的在线广告网站(与gumtree类似),因为这将用于为公司工作的员工,但不能从公司。在SQL Server 2008中拆分表

现在我们有15个类别有子类别,而这些子类别有子类别。

我们称之为广告主表,包括对项目Id,标题,副标题,说明,CreatedBy,BroughtBy,起始日期,结束日期和ParentCategoryId,SubCategoryId和ChildCategoryId等

现在不是有它由一个庞大的表他们销售的商品的所有细节都将为每个商品的细节创建单独的表格。

因此,我们将不得不Advert.Vehicle_Spec这将对所有关于汽车他们卖即 项目Id(这将是一个FK到主广告表),品牌,型号,颜色,蒙特,税务等

细节

这样,当我们查询主表广告,我们可以加入到相关的规格表,这将保持表干净整洁现在我的问题是你是这是一个好方法?这种方法会有什么性能问题吗?我将在需要时创建所有相关的FK以帮助查询等。

我曾在一个SQL Server论坛上提出这个问题,并且有人建议使用XML - 每个类别都获取XML模式,并且XML标记和值保存在一个单一的领域,但数据会根据销售的物品类型而有所不同。这需要更多的设置,但可能具有最佳性能和灵活性的总体平衡。我个人从未在SQL中使用XML,因此我不能评论这是一种好方法吗?

每个类别可以有很多不同的状态我们已经有多种表格可以保存每个状态的描述,我们将执行的查询将从select,delete,insert,update不同,有些查询会有多个连接到状态/用户表中,我们也将实施一个“建议”表单,它将显示为用户建议的所有记录,具体取决于他们搜索的内容。

就灵活性和性能而言,XML是否适合这一点?

回答

1

XML似乎是一个很好的方法,您可以直接编写存储过程来查询您想要的特定类别,并将它们组织到表中并显示它们。然后,您可能想要使用类似XSLT的东西来提取XML数据并将其显示在表中。

+2

这种方法的唯一考虑是您可能需要仔细考虑外键约束和完整性。我不认为你可以在XML中执行外键约束。 – 2014-12-02 04:37:38

+0

Scott将ItemID作为一个普通的列,例如,他可以使用Inner Joins在条件相同的情况下查询子表,问题更多的是使用XML PATH/XML AUTO等,后来显示数据在使用XSLT的表中。 – 2014-12-02 04:48:20

+0

@LebronJames对于迟到的回复抱歉,上面似乎是正确的方法,将这些信息存储在数据库中我怎么能构造它?即数据类型等我应该扩展广告表的一列,将持有这个XML值?我确实发现了这一点,但即时通讯不知道这是你在谈论什么http://msdn.microsoft.com/en-us/library/ms176009.aspx – 2014-12-15 09:22:42