Mysql 作为表名的URL

Mysql 作为表名的URL,mysql,Mysql,我在JDBCMySQL数据库中有一个表,该表中的记录具有唯一的字符串字段,该字符串是URL。每个URL都需要有一个以该URL命名的表 问题是: 某些URL包含超过64个字符,超过了表标识符的最大长度。 URL包含不允许的字符 我该怎么处理? 我的想法是找到或创建某种编码器,它将遵循限制并充当双射函数。有什么想法吗?每个URL有一个表格?不,那太傻了 您应该有一个带有URL的表,另一个表与它有1:many关系。你的想法不可扩展 我建议您不要使用URL作为主键 更好的方法是从数据库中自动生成密钥,并

我在JDBCMySQL数据库中有一个表,该表中的记录具有唯一的字符串字段,该字符串是URL。每个URL都需要有一个以该URL命名的表

问题是: 某些URL包含超过64个字符,超过了表标识符的最大长度。 URL包含不允许的字符

我该怎么处理?
我的想法是找到或创建某种编码器,它将遵循限制并充当双射函数。有什么想法吗?

每个URL有一个表格?不,那太傻了

您应该有一个带有URL的表,另一个表与它有1:many关系。你的想法不可扩展

我建议您不要使用URL作为主键


更好的方法是从数据库中自动生成密钥,并在URL列上设置唯一约束。现在,如果您愿意,您的URL可以是CLOB。不应该与任何那样的方式相冲突

将表命名为URL是一个可怕的想法。不仅会遇到最大名称长度问题,还会遇到编码问题和转义问题


更好的方法是生成自动名称table1、table2等,并使用索引表将URL映射到为其创建的表

为什么不使用附加表来存储从URL到表名的映射?你可以使用表名,比如table1,table2,…除了这是一个可怕的想法,你可以存储散列值,SHA1生成精确的32字节,这样你就可以用64个字符来表示它。