【发布时间】:2014-09-17 13:30:27
【问题描述】:
好的,这里有点奇怪
我有一个客户数据数据库。我的客户是拥有自己客户的企业。
我有 3000 个表格(每个企业一个),每个表格中有数千个电子邮件地址。每个表都一样,保存名称。
我需要找到一种方法来查找电子邮件在企业之间的交叉位置(即出现在多个表格中)以及它们所在的表格的名称。
我尝试将所有条目和表名整理到一个表中并使用“分组依据”,但数据量太大而无法在我们的服务器不崩溃的情况下运行它...
有没有人建议如何在不运行 3000 组连接的情况下完成此操作?
另外,我根本无法更改数据结构。
谢谢
编辑:为了响应那些“有用的”重组 cmets,不是我的数据库,不是我的系统,我几个月前才开始分析数据
【问题讨论】:
-
有人有建议吗 是的!停止为企业制作桌子。使用一个表!
-
为什么要加入这些表?听起来好像你真的想要
UNION甚至UNION ALL -
找到设计这个怪物的人,打他们的头。其次告诉管理层这个结构必须改变,因为它完全是愚蠢的。第三,如果管理层拒绝,那就找一份新工作,因为这个人不可能给你足够的薪水来忍受这种无能的程度。
-
Each table is identical, save the name.然后合并表并添加name字段(或外键)。问题解决了。 -
这种愚蠢的设计助长了“JOINS BAD!!! NOSQL GOOOOD!!!”的荒谬概念当 RDBMS 成为开发人员手中的工具而毫无头绪时,我想它是没有机会的。