2010-03-19 62 views
1

我正在爲客戶創建一個網站,他們希望能夠創建文章。我的想法是標記它們,所以我將實施該系統。數據庫佈局標記系統

什麼是最好的設計,無論是從架構和性能比較的視角:

要使表的所有標籤,然後有一個一對多的關係錶鏈接標籤這樣的:

articles table with ID 
tags table with ID 
one to many table with columns Article.ID and Tags.ID 

2.要與文章的一個桌子和一個與標籤爲這樣的文章:

articles table with ID 
tags table with Article.ID and tag text 

在此先感謝!

回答

3

你的第一個選擇是最合適的,理論上是正確的。

猜測,您的客戶不認爲標籤像一個很好的功能,因爲每個人都有它 - 他們想要通過標籤進行搜索。即使他們還不瞭解他們的需求,並且真的想擁有標籤,因爲周圍的每個人都擁有這些標籤 - 他們很快就會意識到他們的需求。

第一個選項將爲您提供更好的搜索操作性能。

爲文章,標籤和它們之間的多對多實現單獨的表格。

3

絕對是第一個選項。

除了其他好處之外,您還可以通過檢查標記(或類似標記)在添加標記之前是否已存在,允許用戶從現有標記中進行選擇和/或僅允許超級用戶添加新標籤。

這樣你可以避免mispellings或同一標籤的替代拼寫(即美國,美國,USofA,美國,中美,美國,美國,AMERIKA,Amrica等標註一些關於美國的時候)