在尝试添加外键copnstraint时,我已经阅读了许多关于接收MySQL errno 150的帖子,但是我还没有找到解决方案.我希望我不做一些愚蠢的事情.我做了一个简单的测试用例.
两列都是int(11)unsigned(使color_id (编辑:我对此错了,这就是解决方案)NOT NULL没有区别).
这是我的两个表:
表widgets:
CREATE TABLE `widgets` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`color_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
表colors:
CREATE TABLE `colors` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
我刚刚创建了这些表,没有内容.当我尝试添加外键约束以将widgets.color_id链接到colors.id时,会发生以下情况:
mysql> ALTER TABLE `widgets` ADD FOREIGN KEY (`color_id`) REFERENCES `color` …Run Code Online (Sandbox Code Playgroud) 我是Laravel和Eloquent的新手(我对ORM的总体经验很少).
假设我有三个数据库表:
我已经建模了一个包含以下列的联结表:
widget_idaction_iduser_id结点是保持一个日志互动-以时间戳每次user执行action上widget.我看到如何使用Eloquent建立一个简单的多对多关系模型并使其工作正常,但我不确定如何建模更复杂的三向关系.
对于这个问题,即使我有一个简单的多对一对多的关系(说widget来action这样会有一个名为表action_widget),我怎么可以添加一个明确的模式,为action_widget雄辩表,用于跟踪额外数据的目的关于每个关系(例如时间戳,注释字段等).或者,我是否只是以完全错误的方式进行此操作?
作为ORM的新手,我觉得自己无能为力!这种感觉会消失吗?:p
前几天我问了一个愚蠢的问题(愚蠢的问题):
// line1
NSMutableData* myData = [NSMutableData data];
// line2
NSMutableData* myData = [[NSMutableData alloc] init];
Run Code Online (Sandbox Code Playgroud)
这是一个愚蠢的问题,我没有及时发现我的错误.我想问的是,有什么区别:
// line1 -- added retain
NSMutableData* myData = [[NSMutableData data] retain]; // added retain
// line2
NSMutableData* myData = [[NSMutableData alloc] init];
Run Code Online (Sandbox Code Playgroud)
这很可能仍然是一个愚蠢的问题......如果是这样的话,道歉!有真正的区别吗?用ARC?我已经看到NSXMLParser示例使用两种方法(一些Apple示例使用[[[NSMutableData alloc] init] autorelease])并且我不清楚是否真的有区别?
cocoa ×1
cocoa-touch ×1
eloquent ×1
foreign-keys ×1
ios ×1
laravel ×1
mysql ×1
objective-c ×1
orm ×1