RedBeanPHP 中具有两列主键的表



我正在使用下表:

CREATE TABLE `page` (
  `id` int(11) unsigned NOT NULL,
  `revision` float unsigned NOT NULL DEFAULT '1',
  `title` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `alias` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `text` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `parameters` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`,`revision`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

是否可以在RedBeanPHP中使用两列主键?通常你会使用R::load('page', 1)但是因为我不仅想要id=?,还想要修订=?这是行不通的。

我已经阅读了文档和一些堆栈溢出问题,但我找不到这种情况的任何答案。

谢谢你的帮助!

首先,

你不能像你提到的那样做,因为RedBean要求每个表都有一个名为id(小写(的列作为自动增量和主键。查看架构文档。

接下来,即使它有效,我也不建议这样做,因为将修订包含在同一个表中违反了数据库规范化原则。大多数情况下,您只需要最新版本,但将它们全部保留在同一表中只会使您的查询膨胀。因此,相反,我建议尝试一下我的Redbean ReBean模块中描述的解决方案。它使用单独的表进行修订,并通过触发器自动创建。

最新更新