2014-12-02 86 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