小编Rob*_*ard的帖子

具有软删除,唯一键和外键约束的MySQL

说我有两张桌子,user而且comment.它们的表定义如下所示:

CREATE TABLE `user` (
  `id`       INTEGER NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(255) NOT NULL,
  `deleted`  TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY (`username`)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE `comment` (
  `id`      INTEGER NOT NULL AUTO_INCREMENT,
  `user_id` INTEGER NOT NULL,
  `comment` TEXT,
  `deleted` TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  CONSTRAINT `fk_comment_user_id` FOREIGN KEY (`user_id`)
    REFERENCES `user` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

这非常适合强制执行数据完整性以及所有这些,但我希望能够"删除"用户并保留其所有注释(供参考).

为此,我已添加,deleted以便我可以SET deleted = 1 …

mysql database-design constraints foreign-keys

15
推荐指数
2
解决办法
4511
查看次数

Perl是否具有类似PHP的动态变量?

在PHP中,我可以写:

$vname = 'phone';
$$vname = '555-1234';
print $phone;
Run Code Online (Sandbox Code Playgroud)

...脚本将输出"555-1234".

Perl中有任何等价物吗?

有没有办法限制$phone本地区块的范围,就像我写的那样my $phone?使用my $$vname给了我"不能在我的...中声明标量解除引用"错误.

php variables perl dynamic

11
推荐指数
4
解决办法
1万
查看次数

如何在FreeBSD下使Bash历史永久化?

我有一个带有Bash设置的FreeBSD盒子.

我已经习惯了Debian Linux,当我退出时会自动保存命令历史记录,这样当我重新登录时,我可以按下或按Ctrl-R或其他任何内容并访问我的历史记录.

如何设置Bash在FreeBSD上执行此操作?

bash freebsd

6
推荐指数
1
解决办法
4315
查看次数

在Vim 7.3中针对特定文件类型选择性地禁用"filetype插件缩进"

我有vim 7.3,默认情况下使用Ubuntu 11.04提供的设置.我的.vimrc如下所示:

set nocompatible
set autoindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab

filetype plugin indent on
let g:omni_sql_no_default_maps = 1 " Stops Omni from grabbing left/right keys

" syntax, colorscheme and status line directives omitted.
Run Code Online (Sandbox Code Playgroud)

如何针对不同的文件类型(例如php,phtml,rb)有选择地禁用此缩进?

到目前为止,我已经尝试autocmd FileType php filetype plugin indent off了一些变种,但我还没有多少运气.

(删除filetype plugin ...行会产生所需的行为,但显然会影响所有文件类型,而不仅仅是少数.)

vim indentation

6
推荐指数
2
解决办法
4031
查看次数

如何使用Ajax和jQuery在Rails 3中显示flash错误消息?

我的控制器是:

def create
  @group = Group.new(params[:group])

  @group.company=current_user.company
  respond_to do |format|
    if @group.save
      format.html { redirect_to(@group, :notice => 'Group was successfully created.') }
      format.js
    else
      flash.now[:error]=@group.errors.full_messages
      format.html { render :nothing => true }
      format.js
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

create.js.erb是:

$('<%= escape_javascript(render(:partial => @group))%>').appendTo('#groups');
$("#new_group")[0].reset();
Run Code Online (Sandbox Code Playgroud)

ajax jquery ruby-on-rails-3

1
推荐指数
1
解决办法
4635
查看次数