【发布时间】:2010-04-26 09:46:29
【问题描述】:
我的数据库结构中所有表都有两列作为主键。
例如,表 Author 有两列,例如 AutherId,它是一个自动递增的数字,而 pc_id 是该 pc 唯一的,它们是复合键 为表。但是当涉及到关系时,我必须为 每一个关系。并且由于我计划使用 Docrtine (PHP ORM) 它有点 像这样使用它有问题。
所以我想知道我是否可以生成一个唯一的 id(也结合 pc_id)并使用它 作为主键。
php 代码类似于 time() 。兰德(1000,9999)。 $pc_id
这样 id 是通过连接时间 + 1000 到 9999 之间的随机数生成的 和 pc_id(pc_id 也是一个从 1 开始的数字)。但这会产生一个需要 bigint 存储的 20 位数字(当 pc_id 为 6 位时)
这个有什么好的选择吗
问候
【问题讨论】:
-
我不能使用自动生成主键,因为这个数据库将在不同的电脑上运行(不同的 pc_id),然后所有的数据都将被转移到一个公共数据库中,所以如果我只保留自动生成的键作为主键,那么它将被复制
标签: php mysql primary-key composite-key