0

我有一个包含常见注册字段的注册表单和两个标题为“服务”的多项选择列表。我想将表单数据存储到数据库中的表中。目前我只有一个表“registrations”,我也在考虑是否应该创建另一个名为“registration_services”的关系表并存储 regid 和 serviceid

我预计此表中至少有 10000 条记录 将多选列表值存储在同一表的一列中是否更好?

或者我应该创建另一个表并存储为父子关系吗?

最佳做法是什么?

请指教 谢谢新航

4

3 回答 3

2

如果这些服务用在别处,最好建个registration_services表,用JOINs来获取数据。它应该足够有效。10000根本不是一个大数字。

如果它纯粹是提供信息,并且您没有对这些服务的其他引用,则可以将它们作为 CSV 存储在一个列中,但这是一种罕见的情况,我怀疑您在其他任何地方都不需要它们。

于 2010-03-03T13:06:37.087 回答
1

不要将值列表存储在单个列中。

您所描述的是注册与另一个实体之间的一对多关系。将您的关系数据库用作关系数据库。

将多个值放在单个列中的一个大问题是查询具有这些值中的特定值的记录几乎是不可能的(当然也不是高性能的)。

于 2010-03-03T13:06:29.310 回答
1

将数据放在单独的表中要好得多。我怀疑除非您的数据集变得真正,真正庞大,否则它会导致您的速度变慢,此时您可能无论如何都可以使用某种形式的缓存。从长远来看,这将使维护数据变得更加容易,您将能够从索引以及使用 FK 约束来帮助维护数据的完整性中受益。

于 2010-03-03T13:14:56.847 回答