有幾個實體我們希望隱藏客戶的確切ID - 主要原因是我們不希望客戶知道它們中有多少個DB。隨機ID生成器,映射與同列
例如從URL,http://mydomain/user/get/27,它說這是第27個用戶。
因此,我正在實施一種分配隨機ID(必須是唯一的)的解決方案。換句話說,我們不是使用唯一的序列號,而是尋求獨特的非序列+隨機數解決方案。
例如從URL,http://mydomain/user/get/8534023,這實際上是第27個用戶。
我的問題在於,知道這裏的某些用戶可能對類似問題有經驗,我應該使用映射還是將隨機ID分配給主鍵列?
例如
CREATE TABLE IF NOT EXISTS `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `somethingElse` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) CREATE TABLE IF NOT EXISTS `map` ( `id` int(10) unsigned NOT NULL, /* Foreign Key to test table */ `parent` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `parent` (`parent`) )
VS.
CREATE TABLE IF NOT EXISTS `test` ( /* Assign random ID here */ `id` int(10) unsigned NOT NULL, `somethingElse` varchar(255) NOT NULL PRIMARY KEY (`id`) )
對我來說,後者來更加得心應手,因爲我沒有保持一個地圖,我也可以選擇自定義的DAO /應用程序使用映射的ID(或確切的ID內部)。對於這兩種情況,我都必須編寫自己的隨機ID生成器。
+1這絕對是擁有「功能」鍵的最佳做法。 – 2010-01-24 04:47:20