Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp复合主键_Php_Cakephp_Cakephp 2.5 - Fatal编程技术网

Cakephp复合主键

Cakephp复合主键,php,cakephp,cakephp-2.5,Php,Cakephp,Cakephp 2.5,我是Cakephp的新手。请问,在cake不接受复合键的情况下,我如何在cakephp模型中实现这个逻辑 我有三张桌子 创建表卫星( id整数主键, 名称文本, 位置文本); 创建表格传感器( 卫星id整数, VARCHAR型(100), 测量单位文本, 主键(卫星识别号,类型), 约束卫星id外键(卫星id) 在删除级联上引用卫星(id) ); 创建表数据( id整数主键自动递增, 卫星id整数, 传感器类型VARCHAR(100), 价值真实, valuetext整数, 时间戳时间戳不为空,

我是Cakephp的新手。请问,在cake不接受复合键的情况下,我如何在cakephp模型中实现这个逻辑

我有三张桌子

创建表卫星(
id整数主键,
名称文本,
位置文本);
创建表格传感器(
卫星id整数,
VARCHAR型(100),
测量单位文本,
主键(卫星识别号,类型),
约束卫星id外键(卫星id)
在删除级联上引用卫星(id)
);
创建表数据(
id整数主键自动递增,
卫星id整数,
传感器类型VARCHAR(100),
价值真实,
valuetext整数,
时间戳时间戳不为空,
外键(卫星识别号,传感器类型)
参考传感器(卫星识别号,类型)
);
  • 卫星有许多传感器
  • 传感器属于卫星
  • 传感器有许多传感器数据

  • 传感器数据属于传感器

如果我理解您的意思,您必须修改表模式以使用所有CakePHP功能

按表使用1主键是一种很好的做法(适用于cakephp,但一般适用于所有表)

所以 传感器必须具有id

和传感器数据:传感器id

在简单的传感器数据之后,则属于传感器ID。


CakePHP3现在支持复合键用于任何目的,因为它们对记录访问没有帮助。因此,正如建议的那样,我们必须将id主键包含到所有表中以供选择和更新。

传感器数据属于传感器:哪个字段?类型?通过2个外键与传感器链接的传感器数据:卫星id和传感器类型。=>外键(satelite_id,sensortype)引用传感器(satelite_id,type)。使用这种结构,您将赢得很多时间,并使用良好的实践。见: