我有一个问题。
我有一个 url 主表。 UrlId 是主键。从 10000 开始。在这个表中我有我找到的所有 url 地址。然后我在不同的数据库中有 1000 个表(所以我不能使用外键)。它们彼此相同,例如 urldata.100 到 urldata.999。 (这里我存储元数据等)
假设我想在连接中使用 left 函数来连接每个主记录
Id 10000 - 连接到表 urldata.100 ID 11034 - 连接到表 urldata.110
所以我想在大规模连接中从主表中取出每个 UrlId 的前 3 个数字。
这能实现吗?
最佳答案
这是一个非常非常糟糕的设计,因为它限制了可扩展性以及数据库的性能。
如果您确实想存储不同 UrlIds
的元数据,则只需创建一个表。将其命名为 UrlMeta
或类似名称。
结构为(UrlID, MetaName, MetaValue)
。此结构可以存储任意数量的元数据,如 (MetaName, MetaValue)
对。
管理好这个之后,您的查询将变得非常简单,因为您只需要连接 2 个表,而不是 1001 个!
关于MySQL:将1个主表连接到1000个子表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600859/