我是Cakephp的新手。请注意,如何在cakephp模型中实现此逻辑,因为cakephp不接受复合密钥。
我有三张桌子。
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)
);发布于 2014-11-20 14:33:39
如果我理解您的话,您必须重新工作您的表模式,以便使用所有的CakePHP功能。
按表(对于cakephp,但对于所有表)都有一个1主键是一个很好的实践。
所以传感器必须有身份证
和感觉数据: sensor_id
和简单的传感器数据belongsTo sensorId。
发布于 2015-09-23 17:49:46
http://book.cakephp.org/3.0/en/quickstart.html#creating-the-database
CakePHP 3现在支持用于任何目的的复合键,因为这些都无助于记录访问。因此,我们必须将id主键包含在所有表中,以便进行选择和更新。
https://stackoverflow.com/questions/27012043
复制相似问题