在DB中使用相同的客户ID命名与不同的客户端

时间:2017-02-02 21:43:51

标签: mysql mongodb database-design mean-stack

我正在寻找比竞争对手更好的客户ID编号策略,因为他们添加了一个顺序策略,无论客户端ID是什么,编号都是连续的。所以他们可能有一个与位置无关的UCID,但只有软件公司才有。因此,理论上如果我有1000个地点使用我们的软件,每个客户有20,000名客户,很明显客户ID号可能是数百万。

我的想法是采用与SSN类似的方法,因为我们将让客户在所有50个州使用我们的SaaS。我想使用前缀方法,使用客户所在的州被允许进入美国时的数量。因此,如果是特拉华州,则前缀为01-XXXX,如果这是我们在特拉华州的37客户端,则ID为01-0037,并且输入此客户级DB表的第一个客户将自动从1开始。

这个想法的优点是什么,以及它可以带来什么缺点。我也希望这样可以更容易地进行企业报告

1 个答案:

答案 0 :(得分:0)

如果您有一个单个数据库服务器,那么您可以创建任何您想要的方案。

如果您"分发"在许多服务器上生成数字,那么你必须提出一些通用的独特机制,例如UUID(不是连续的)或你的2部分机制(在第二部分是连续的)。

如果每个州有一个序列,请记住,加利福尼亚州的数字可能是最小州的100倍。这有关系。

你应该考虑为什么你需要一个"顺序"编号策略。

如果数字上有洞,你会怎么做?如果出现服务器崩溃等情况,或者当客户端出现问题时,就会发生这种情况。消失(死亡,破产,离开州等)。

连续数字对发票很有用 - 因此审核可以证明'没有遗漏或额外的发票。但为什么客户ID?