我是Cakephp的新手。请问,我怎么能在cakephp模型中实现这个逻辑,知道cake不接受复合键。
我有3张桌子。
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)
);
答案 0 :(得分:0)
如果我理解你,你必须重做你的表模式以使用所有CakePHP功能。
通过表格获得1个主键是一个很好的实践(对于cakephp,但对于所有表格而言)
所以 传感器必须有id
和sensordatas:sensor_id
并且在简单的感觉数据属于传感器之后。
答案 1 :(得分:0)
http://book.cakephp.org/3.0/en/quickstart.html#creating-the-database
CakePHP 3现在支持复合键用于任何目的,因为这些对记录访问没有帮助。因此,我们必须在所有表格中加入 id 主键以供选择和更新。