Я новичок в 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)
);
Если я вас понимаю, вам пришлось переделать схему таблицы, чтобы использовать все возможности CakePHP.
Полезно иметь 1 первичный ключ за таблицей (для cakephp, но для всех таблиц в целом)
Так
датчики должны иметь идентификатор
и сенсордаты: sensor_id
и после простого сенсордата принадлежит SensorId.
http://book.cakephp.org/3.0/en/quickstart.html#creating-the-database
CakePHP 3 теперь поддерживает составные ключи для любых целей, поскольку они не помогают с доступом к записи. Так как предложено, мы должны включить Я бы первичный ключ ко всем нашим таблицам для выбора и обновление.