php - SQL中如何实现多个表的全局自增id?

标签 php mysql sql database-design

我在编码时决定为每种类型的内容使用不同的表格。现在我一直在解决这个问题。基本上,我的通知系统按当前时间戳对最新内容进行排名。然而,这是不准确的,因为极有可能有人会与另一个人同时提交内容,并且会出现不正确的排名。

现在,如果我将所有内容都放在一个表中,我只需按自动递增变量对其进行排名即可。有没有办法跨多个表实现这个自动递增整数(例如,当某些东西被插入到 table1 中时,id=0,某些东西被插入到 table2 中,id=1 ).或者我是否必须将我所有的东西重新编码到一个表中。

注意:

我将内容放在多个表中的原因是它有条理并且可以减少负载压力。我真的不再关心组织了,因为我可以通过我编写的 GUI 访问数据,我只是想知道负载压力。

编辑:

我正在使用 PHP 5 和 MySQL。

最佳答案

您的问题,尤其是跨多个表的 ID 需求,清楚地表明您的数据库设计需要更改。您应该为所有内容类型制作一张表(作为一般化),并使用自动递增 ID。然后,对于每个特定的内容类型,您可以定义具有额外字段的其他表(相当于 OOP 中的继承),以及指向基本表的外键。

换句话说,你需要类似 inheritance in SQL 的东西.

关于php - SQL中如何实现多个表的全局自增id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751297/

相关文章:

php - 尝试在构造函数中调用方法时出现 fatal error

php - Sage Pay 测试服务器不会加载 3D 安全页面

MySQL全文期

sql - 从合并函数中找到最大值

sql - 查询以检查表上的索引

PHP,数组操作来获取所有相同名称的键

php - 检查用户名是否已经存在不会显示正确答案

mysql - 如何在MySQL中使条件为可选,以便如果我的条件错误,则应执行查询

mysql - 选择没有特定值的 ID

mysql - Eloquent 无法知道实际的主(复合)键