2014-10-19 39 views
0

我有一個JDBC MySQL數據庫中的一個表,它具有唯一字符串字段的記錄,該字符串是一個URL。每個網址需要有一個以該確切網址命名的表格。作爲表名稱的URL

問題: 某些URL由超過64個字符組成,超過了表標識符的最大長度(MySQL Reference)。 URL包含不允許的字符。

我該如何處理? 我的想法是找到或創建一種編碼器,它將遵循限制並充當雙射功能。有任何想法嗎?

+1

爲什麼不使用附加表從URL中存儲的映射到一個表名?你可以使用表名如table1,table2,... – Barry 2014-10-19 15:01:08

+0

除了這是一個可怕的想法,你可以存儲散列值,SHA1生成確切的32個字節,這樣你就可以用64個字符來表示它。 – msrd0 2014-10-19 15:07:32

回答

0

將表格命名爲URL是一個可怕的想法。您不僅會遇到最大名稱長度問題,還會遇到編碼問題和轉義問題。

一個更好的方法將生成自動名稱(表1,表2等),並有一個URL映射到爲其創建的表的索引表

0

每個URL的表?不,這很愚蠢。

您應該有一個帶有URL的表格,另一個帶有1:多關係的表格。你的想法不可擴展。

我建議您不要使用URL作爲主鍵。

一個更好的想法是從數據庫中自動生成密鑰並在URL列上使用UNIQUE約束。如果您願意,現在您的URL可以是CLOB。不應該以這種方式與任何length limitations發生衝突。