2012-08-06 38 views
1

當我在表格中存儲了一些項目,然後希望將一個URL連接到每個項目時,我只是有一些像mywebsite.com/item/132 這將顯示有關第132項的信息在項目表中。這樣做不好嗎?我應該讓它擁有像YouTube一樣的東西,每個項目都有一組隨機字符嗎?這樣做的最好方法是什麼?PHP/MySQL:存儲項目標識

只是存儲項目照常號碼錶,然後一個URL看起來更像嗎?mywebsite.com/item/a19kgjy

然後PHP腳本「解密」 a19kgjy,並得到其使用了一些從數據庫中獲取正確的項目?

這會使一切變得更慢嗎?

+1

它會讓它變慢。鏈接'mywebsite.com/item/132'已經足夠了...... – arnoudhgz 2012-08-06 09:11:11

+0

@Oskwish你指的是什麼? – itsols 2012-08-06 09:12:46

+0

@itsols產品,東西,視頻。這僅僅是一個例子:P – 2012-08-06 09:15:27

回答

2

這很糟糕,因爲您要爲服務器添加額外的工作來排序。爲什麼不創建這樣的表格?

CREATE TABLE myTable 
(
    ID int AUTO_INCREMENT, 
    httpLink varchar(max) 
) 

在這種情況下,你只會排序ID

+0

好的,但是存儲的只是ID和AUTO_INC(ofc;)),然後讓URL只包含ID? – 2012-08-06 09:17:48

+0

保持簡單 - 第一條建議。不要在你的問題中添加你在我的這些哈希。我會建議這種簡單的表格(如果需要的話添加額外的字段),如果你不喜歡鏈接中的ID或者你想成爲「seo friendly」,你可以有「slug」字段(varchar類型)。然後當填充新物品時,生成slu,,保存它,然後你可以使用這些URL。看起來更好 - 也許,這在邏輯上與URL中的ID有什麼不同 - 沒有:)選擇你最喜歡的那個,但不要增加額外的複雜性:) – 2012-08-06 09:57:01

1

我認爲這更多的與安全/數據保護的問題。這實際上取決於你是否希望它可以被其他人輕鬆訪問。有時候,在使用散列鍵更好的情況下,例如,讓我們說transaction_id或user_id,在那裏你公開了你的業務有多少次交易或者你的系統有多少用戶,這可能會間接導致到一些漏洞。但是如果你想實現哈希方法,我建議你在數據插入過程中生成隨機哈希,而不是在查詢期間使用解密方法。這將爲您節省一些處理能力。但請記住索引表的散列字段。無論如何,一個數字或一個哈希不是一個真正的搜索引擎友好的網址。

相關問題