首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp复合主键

Cakephp复合主键
EN

Stack Overflow用户
提问于 2014-11-19 08:23:28
回答 2查看 4.3K关注 0票数 1

我是Cakephp的新手。请注意,如何在cakephp模型中实现此逻辑,因为cakephp不接受复合密钥。

我有三张桌子。

代码语言:javascript
复制
CREATE TABLE satelites(
    id INTEGER PRIMARY KEY,
    name TEXT,
    location TEXT);

CREATE TABLE sensors (
    satelite_id INTEGER, 
    type VARCHAR(100),
    unitofmeasurement TEXT,
    PRIMARY KEY(satelite_id,type),
    CONSTRAINT satelite_id FOREIGN KEY(satelite_id) 
        REFERENCES satelites(id) ON DELETE CASCADE
);

CREATE TABLE sensordatas(
    id INTEGER PRIMARY KEY AUTO_INCREMENT,
    satelite_id INTEGER, 
    sensortype VARCHAR(100), 
    value REAL,
    valuetext INTEGER, 
    timestamp TIMESTAMP NOT NULL,
    FOREIGN KEY(satelite_id,sensortype) 
       REFERENCES sensors(satelite_id,type)
);
  • 卫星有很多传感器
  • 传感器属于卫星
  • 传感器有很多传感器数据。
  • 传感器属于传感器
EN

回答 2

Stack Overflow用户

发布于 2014-11-20 14:33:39

如果我理解您的话,您必须重新工作您的表模式,以便使用所有的CakePHP功能。

按表(对于cakephp,但对于所有表)都有一个1主键是一个很好的实践。

所以传感器必须有身份证

和感觉数据: sensor_id

和简单的传感器数据belongsTo sensorId。

票数 0
EN

Stack Overflow用户

发布于 2015-09-23 17:49:46

http://book.cakephp.org/3.0/en/quickstart.html#creating-the-database

CakePHP 3现在支持用于任何目的的复合键,因为这些都无助于记录访问。因此,我们必须将id主键包含在所有表中,以便进行选择和更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27012043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档