2010-09-12 19 views
1

我正在創建一個表單,它將捕獲所有表單數據並將其存儲在數據庫中,我想要做的是使用一些表單數據來創建一個自定義md5用戶ID,以防止多個條目,我知道這很可能不是最理想的方式,所以如果有更好的方法來創建我可以用於每個用戶的獨特的md5 uid,請賜教。從表單信息創建一個自定義的md5用戶ID

我已經考慮過只是使用一個隨機數字,並檢查數據庫對電子郵件和名字,但我很好奇,看看有沒有更好的方式來做到這一點。

Thanx提前!

+0

我認爲MD5方法在這種情況下不是一個增強。如果您已經存儲了原始字段,請使用它們。 – LatinSuD 2010-09-12 13:14:08

回答

1

等等...您想使用獨特的MD5創建用戶ID嗎? ...爲什麼不使用auto_increment整數字段?每次INSERT運行時,它都會增加1,因此總是唯一的。因爲它是一個整數,所以如果你對它進行任何搜索,它會快得多。

+0

我通常使用這種方法,但我在想,可能有更好的方法。 – Odyss3us 2010-09-12 13:26:27

1

您可以讓MySQL使用「U​​NIQUE」爲您完成工作。假設你有一個表USER_DATA(user_data_id,名稱,文本,內容,日期),並希望名稱和文字是唯一一個元組:

CREATE user_data (
    user_data_id INTEGER, 
    name VARCHAR(50), 
    text TEXT, 
    date DATE, 
    PRIMARY_KEY(user_data_id), 
    UNIQUE(name,text) 
); 
+0

我認爲唯一的電子郵件字段是綽綽有餘加自動增量用戶ID。 – Nazariy 2010-09-12 13:28:00

+0

當然,但它聽起來像他希望多個字段是唯一的。 – halfdan 2010-09-12 14:56:02

+0

謝謝你的見解! – Odyss3us 2010-09-12 15:29:53

1

我假定你的意思是你要避免同中有重複的條目人。

你或許應該檢查輸入的電子郵件+姓名+姓氏數據庫,用strtolower()正常化他們,去掉空格等之後

除此之外,你無法知道是否該人在輸入數據表格已經做到了。由於代理和網關,或者甚至是相同的計算機(共享計算機),您不能安全地依靠ip。如果你在這兩方面積極進取,你可能會得到很多無法使用你的系統的合法用戶。

最好的辦法是假定你的數據庫有重複的條目,然後決定如何處理它們。要麼標記那些沒有被使用的人,如果他們在系統上的帳戶有一些智能來檢查他們是否基於他們的行爲重複。

+0

偉大的建議,謝謝! – Odyss3us 2010-09-12 15:30:12

相關問題