我正在开发一个日志数据库,在这种情况下被记录的组件的ID不是由数据库本身决定的,而是由发送报告的系统决定的。系统id是一个唯一的varchar,组件的id由系统(在某个较远的位置)确定,因此当组件的主键为system_id + component_id时,可以保证唯一性。
我想知道这种方法是否有效。我可以使用自动递增的整数作为 id,但这意味着我必须在插入之前执行选择操作,以便我可以获得此生成的 id,而不是使用系统提供的已知字符串 id。
数据库规模将很小,不超过几十个系统,每个系统有几十个组件,可能还有数千个组件更新(另一个表)。旧的更新将定期转储到文件中并从数据库中删除,因此它永远不会变得“大”。
有什么推荐吗?
最佳答案
我倾向于使用自动递增整数作为主键,并将索引放在 system_id 和 component_id 上。您在插入之前的选择将非常便宜且快速。
关于mysql - mysql 中的 varchar 和复合主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10115433/