2017-06-06 70 views
2

我認爲不公開自動遞增DB ID(帳戶,產品等)是更好的方法。我們可以使用UUID &通過API或網頁公開這些。通過API或網頁公開數據庫自動遞增ID

但是我檢查了許多大公司似乎並不關心:

  • 谷歌,亞馬遜,Facebook,微博(一切似乎都數字 自動遞增的帳戶ID)
  • 梅西&易趣顯示產品ID(或網絡IDS),這是自動遞增 IDS

一種情況亞馬遜並似乎並不在乎:

  • 亞馬遜並使用其產品目錄ASIN號碼(其中 所謂內部鏈接到他們的數字自動遞增DB 產品ID)

所以,在使用UUID是我們試圖解決一個問題不存在 ?只是不值得的時間&努力?

+0

隨機值給出任何信息,這是比提供信息更好。公司在關懷方面是精神病患者。 – philipxy

回答

0

關於帳戶表使用自動遞增的ID,這裏有一些原因,它是一個壞主意:

  1. 序列號暴露給公衆的記錄數的表和增長速度表如果在一段時間內採樣。
  2. 如果api的安全性較差,可以通過簡單地增加id和進行api調用,直到檢索到所有數據,才能刪除數據庫中的所有記錄。
  3. 當使用自動遞增ID並插入多個相關實體時,需要對數據庫進行多次調用才能將實體插入到數據庫中。如果使用UUID,則可以構造整組對象而無需與數據庫交互。例如,對於訂單標題和訂單行項目,您需要插入訂單標題,獲取主要標識,然後將訂單行項目插入訂單標題標識。

  4. 當從開發將數據遷移到臨時或分期住,插入新的數據,如果使用自動增量ID和外鍵等具有挑戰性

+0

1.如果失去更多的大公司不在乎暴露增長率,那麼......? 2.如果API安全性差,那麼需要考慮更大的問題。 4.通常情況下,您永遠不會將測試數據投入生產。即使需要數據轉儲也會照顧到這一點。對於小配置編輯或者更好的方法是不直接在prod數據庫上工作,而是使用管理工具。 – redbaron

+0

我們應該尋找的東西真的是 - 有沒有真正的明顯的好處?感謝您的評論。 – redbaron