首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对10多列的唯一约束

对10多列的唯一约束
EN

Stack Overflow用户
提问于 2010-06-09 09:53:41
回答 5查看 223关注 0票数 0

我有一个时间序列模拟模型,它有超过10个输入变量.不同仿真实例的数量将超过100万,并且每个模拟实例每天生成几行输出。

为了将模拟结果保存在关系数据库中,我设计了这样的表。

创建表SimulationModel (

simul_id整数主键,

input0字符串/数字,

input1字符串/数字,

...)

创建表SimulationOutput (

dt DateTime主键,

simul_id整数主键,

output0数字,

...)

为了使每一种模式都是独一无二的,我正在考虑以下几种方法。

  1. 对SimulationModel表

的所有输入列都设置了唯一的约束。

  1. 重新设计了SimulationModel表,将输入列分组为2~3列,并对这些分组列设置了唯一的约束。(通过创建一个长字符串值,如"input0_input1_input2")

)

  1. 忘记了服务器端约束,而在应用程序端执行工作.

你对这些选择有什么看法?

在包含数百万行的10多个列上使用唯一索引没有问题吗?

还有其他推荐的方法吗?

(我可以使用postgresql)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-09 20:56:27

创建unqiue约束。有几百万行的10列实际上不是一个大表。而且,您的测试可能会从使用索引中受益--或者至少一个索引不会产生任何伤害。

票数 1
EN

Stack Overflow用户

发布于 2010-06-09 10:00:47

如果您为模拟模型创建了两个表,如下所示:

代码语言:javascript
复制
Table SimulationModel {
id: integer,
...
}

Table SimulationModelInput {
simulationmodel_id: integer foreign key(SimulationModel.id),
input: string or numeric,
...
}

然后您可以设置一个约束(simulationmodel_id,输入),但是获取配置的查询要复杂得多。

票数 1
EN

Stack Overflow用户

发布于 2010-06-09 10:04:55

唯一索引是确保每一组输入都是唯一的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3004717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档