比方說google.com呼籲標籤:如何在數據庫中存儲域名標籤?
search,google,searchengine,engine,web
Facebook有標籤調用:在數據庫
facebook,social,networking,friends,community
我應該如何同時存儲域及其相應的標籤?
比方說google.com呼籲標籤:如何在數據庫中存儲域名標籤?
search,google,searchengine,engine,web
Facebook有標籤調用:在數據庫
facebook,social,networking,friends,community
我應該如何同時存儲域及其相應的標籤?
你應該創建3代表爲存儲所有這些東西:
domains: id | name
tags: id | name
domains_tags: tag_id | domain_id
域:
id | name
------------------
1 | google.com
2 | stackoverflow.com
個
標籤:
id | name
------------------
1 | web
2 | lol
3 | facepalm.jpg
domains_tags:
domain_id | tag_id
------------------
1 | 1
1 | 2
2 | 3
在此示例中有2個與google
域和一個標籤相關SO
併爲每個需要的關係標籤添加一個記錄到domains_tags
將存儲域和特定標籤之間的關係。
這種技術被命名爲Many-To-Many
作爲另一個答案建議 - 你還可以添加其他領域domains
命名tags
和存儲標籤有以逗號分隔,但這種方法是奇怪的,因爲你會得到時候麻煩您需要對域和標籤進行一些分析/統計/搜索。遵循這個想法的唯一原因是將當前域的標籤列表「緩存」到剛纔顯示的作爲新增的(而不是替換!!)到我先給出的解決方案。
聽起來像一個非常簡單的表2列|域|標籤|
CREATE TABLE tag_table (domain varchar(255), tag varchar (255));
SELECT tag FROM tag_table WHERE domain = 'google.com';
INSERT into tag_table (domain, tag) VALUES ('google.com', 'search');
i.e.
google.com | search
google.com | google
google.com | searchengine
google.com | engine
google.com | web
facebook.com | facebook
facebook.com | social
facebook.com | network
...
看起來像昨天這個問題:http://stackoverflow.com/questions/4912579/how-do-i-find-websites-using-tag-search要麼你是一個新的帳戶,或多個人們正在努力爲他們完成他們的功課。 – 2011-02-09 02:42:46
@Justin Morgan:或者他們剛剛被聘用到同一個自由職位;-) – zerkms 2011-02-09 02:50:00