1

我正在开发一个日志数据库,在这种情况下记录的组件的 ID 不是由数据库本身决定的,而是由发送报告的系统决定的。系统id是唯一的varchar,组件的id是由系统决定的(在某个遥远的地方),所以当组件的主键是system_id + component_id时保证唯一性。

我想知道的是这种方法是否有效。我可以使用自动递增的整数作为 id,但这意味着我必须在插入之前执行选择操作,以便我可以获得这个生成的 id,而不是使用系统提供的已知字符串 id。

数据库将是小规模的,不超过几十个系统,每个系统都有几十个组件,并且可能有数千个组件更新(另一个表)。旧更新将定期转储到文件中并从数据库中删除,因此它永远不会变得“大”。

有什么推荐吗?

4

2 回答 2

1

我倾向于将自动递增的整数作为主键并将索引放在 system_id 和 component_id 上。您在插入之前的选择将非常便宜且快速。

于 2012-04-11T23:52:19.833 回答
1

我相信您会发现使用 varchar() 键可以很好地执行数百万行的表。

这很容易测试。只需导入您的数据。

于 2012-04-12T11:32:23.240 回答