2014-11-19 4 views
0

Cakephp에 새로운 기능이 있습니다. 제발, 어떻게 cakephp 모델에서이 논리를 구현할 수 있습니다 케이크가 합성 키를 허용하지 않습니다.Cakephp Composite Primary Key

나는 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) 
); 
  • satelites는
  • 센서는
  • 센서를했다 satelites
  • sensordatas 내가 당신을 이해한다면
+0

sensordatas 센서에 속합니다 : 어떤 필드가 있습니까? 타입? – MouradK

+0

sensordatas는 2 개의 외래 키 : satelite_id 및 sensortype을 통해 센서와 연결됩니다. ==> 외래 키 (satelite_id, sensortype) 참고 센서 (satelite_id, type) – Med

답변

0

을 센서에 속하는 많은 sensorsdatas에 속하는 많은 센서를 가지고, 당신은 재 작업했다 당신의 모든 CakePHP 사용을위한 테이블 스키마.

그것은 테이블에 의한 1 차 키가 좋은의 연습을이야 (CakePHP를위한을하지만, 일반적으로 모든 테이블에 대해)

그래서 센서 ID

및 sensordatas이 있어야합니다

을 sensor_id 단순한 sensordata가 속한 후 sensorId.

+0

이 구조로 많은 시간을 얻고 좋은 기법을 사용합니다. 참조 : http://stackoverflow.com/questions/337503/whats-the-best-practice-for-primary-keys-in-tables – MouradK