我应该为这个用例创建一个单独的表吗?

Posted

技术标签:

【中文标题】我应该为这个用例创建一个单独的表吗?【英文标题】:Should I create a separate table for this use case? 【发布时间】:2019-08-26 07:50:20 【问题描述】:

我需要在第三方平台上加入我的一些商家,为此我需要发送商家详细信息以及请求参考号 (rrn)(对于每个加入请求都是唯一的)。入驻后,商家是否真正入职将由单独的验证 api 完成,这将需要我发送请求参考号。 问题是我应该在我现有的商家表中添加一个新列,还是应该创建一个单独的表来映射商家 ID 和请求 rrn,因为只有 5% 的商家会加入这个第三方?

【问题讨论】:

我建议把它放在单独的表中,现在你只有 ref_no 但将来为 onboarding_cmets 和其他添加额外的列。 同一张表中的入职状态以及另一个表中需要的其他信息,理想情况下,另一个表将在一对多场景中有用 【参考方案1】:

只要商家表很小(小于 100 万),只需在表中添加一列并对其进行索引

【讨论】:

mysql 可以处理数以十亿计的索引表,使用索引就可以了【参考方案2】:

我建议您将此信息存储在单独的表中。您描述了一个简单的场景,但实际场景可能更复杂:

从启动到成功之间存在时间差。 可能入职不成功。 如果商家可以“加入”,那么他们可以“退出”。 然后再次加入。

换句话说,如果您正在管理流程,您应该跟踪每一种可能性。

如果您管理流程,而商家只是告诉您他们已加入,那么将信息存储为标志就可以了。

【讨论】:

以上是关于我应该为这个用例创建一个单独的表吗?的主要内容,如果未能解决你的问题,请参考以下文章

原则:我可以使用 SQL 来创建我的表吗?

我应该使用 LIKE 来查询有 400 万行的表吗

我的数据库中可以有 100 万张表吗?

爬虫可以更新 AWS Glue 中导入的表吗?

我可以在 prepare() 函数中连接字符串以插入指定的表吗

导航抽屉片段 Sqlite