Cakephp Составной первичный ключ

Я новичок в 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)
);
  • у спутников есть много датчиков
  • датчики принадлежат спутникам
  • Датчики имеет много датчиков данных
  • Сенсордатас принадлежит к сенсорам

1

Решение

Если я вас понимаю, вам пришлось переделать схему таблицы, чтобы использовать все возможности CakePHP.

Полезно иметь 1 первичный ключ за таблицей (для cakephp, но для всех таблиц в целом)

Так
датчики должны иметь идентификатор

и сенсордаты: sensor_id

и после простого сенсордата принадлежит SensorId.

0

Другие решения

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

CakePHP 3 теперь поддерживает составные ключи для любых целей, поскольку они не помогают с доступом к записи. Так как предложено, мы должны включить Я бы первичный ключ ко всем нашим таблицам для выбора и обновление.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector