那麼我運行一個小視頻網站,在實際的視頻頁面上有一條類似於大多數視頻方面(如YouTube)的「相關視頻」和目前我所做的只是隨機取出其中的一個標籤,並找到具有相同標籤的其他視頻。毫不奇怪,這不是一個好方法,因爲一些標籤非常模糊,一些視頻被錯誤標記。當前查詢的在標記視頻系統上尋找「相關視頻」查詢的建議
實施例:
SELECT video_name FROM videos INNER JOIN videotags ON videos.id=videotags.video_id INNER JOIN tags ON tags.id=videotags.tag_id WHERE tag_name='x' AND videos.id<>'y' LIMIT 5
其中x是從當前視頻和y的標籤中的任一個是從當前視頻的ID。 (參考我使用的參數化查詢不用擔心)
我只是好奇你們如何處理這個問題,也許最好是合併類似的視頻標題?
這裏是我的數據庫表中如何設置:
VIDEOS TABLE
------------
video_id [PK,auto_increment] int(11)
video_name varchar(255)
TAGS TABLE
----------
tag_id [PK,auto_increment] int(11)
tag_name varchar(255)
VIDEOTAGS TABLE
---------------
tag_id [PK,FK] int(11)
video_id [PK,FK] int(11)
有明顯的視頻表的詳細列但這恰恰說明了具有自動遞增的主鍵兩側
簡單許多一對多的關係該網站是建立在PHP與MySQL數據庫,但其實並不重要:)
編輯:還有的是要去一個有機的路線等等一些演講中,我的身影我會發布我的其他兩個與視頻觀看和視頻評級相關的半相關表格。現在請注意,我沒有特別增加更多的列,因爲隱私問題的視頻意見表的打算(是的,我知道我存儲在評級表IPS)
VIDEOVIEWS TABLE
----------------
video_id [FK] int(11)
view_time datetime
VIDEORATINGS TABLE
------------------
video_id [PK,FK] int(11)
ip_address [PK] varchar(15)
rating int(1)
rate_time datetime
哈,謝謝我也這麼認爲^ -^ – 2008-12-20 19:38:35