我在JDBC MySQL数据库中有一个表,其中包含唯一字符串字段的记录,该字符串是一个URL。每个URL都需要有一个以该确切URL命名的表。
问题: 某些URL由超过64个字符组成,超过了表标识符的最大长度(MySQL Reference)。 URL包含不允许的字符。
我应该如何处理? 我的想法是找到或创建某种编码器,它将遵循限制并充当双射功能。有什么想法吗?
答案 0 :(得分:0)
每个网址的表格?不,那很傻。
你应该有一个带有URL的表和另一个带有1:很多关系的表。你的想法不具备可扩展性。
我建议您不要使用URL作为主键。
更好的想法是来自数据库的自动生成密钥和URL列上的UNIQUE约束。现在,如果您愿意,您的URL可以是CLOB。不应该以任何方式与length limitations发生冲突。
答案 1 :(得分:0)
将您的表命名为URL是个糟糕的主意。您不仅会遇到最大名称长度问题,还会遇到编码问题和转义问题。
更好的方法是生成自动名称(table1,table2等),并有一个索引表,将URL映射到为其创建的表