相关疑难解决方法(0)

在django中区分null = True,blank = True

当我们在django中添加数据库字段时,我们通常会写models.CharField(max_length=100, null=True, blank=True).同样是用ForeignKey,DecimalField等等.有什么基本的区别

  1. null=True 只要
  2. blank=True 只要
  3. null=True, blank=True

在相对于不同的(CharField,ForeignKey,ManyToManyField,DateTimeField)字段.使用1/2/3有哪些优点/缺点?

python django django-models

819
推荐指数
14
解决办法
22万
查看次数

软删除是个好主意吗?

软删除是个好主意还是坏主意?

您只需将其标记为IsDeleted = true,而不是实际删除数据库中的记录,并且在恢复记录后,您可以将其标记为False.

这是一个好主意吗?

最好是物理删除记录,然后将其移动到存档数据库,如果用户想要记录回来,那么软件会在存档中查找记录并重新创建它吗?

sql database database-design data-modeling soft-delete

136
推荐指数
9
解决办法
8万
查看次数

数据库:删除或不删除记录

我不认为我是唯一一个对此感到疑惑的人.您通常对数据库行为进行什么练习?您是否希望从数据库中删除记录?或者,仅使用"已删除"标志或布尔列标记记录以表示记录处于活动还是非活动状态更好?

database database-design

107
推荐指数
6
解决办法
3万
查看次数

依赖外键级联是不是很糟糕?

我参与的项目的首席开发人员表示依靠级联删除相关行是不好的做法.

我不知道这有多糟糕,但我想知道你对它是否/为什么的看法.

mysql sql database-design cascade

16
推荐指数
4
解决办法
7115
查看次数

具有软删除,唯一键和外键约束的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
查看次数

在DB表中标记已删除的记录

有时您想将数据库表记录标记为已删除而不是永久删除它,对吧?

你是怎样做的?

到目前为止,我一直在使用布尔"删除"字段,但我不确定它是否是一个很好的评论.

language-agnostic database-design database-schema

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

Django,级联移动到单独的表而不是级联删除

我想保留数据 delete

而不是soft-delete(使用is_deleted字段),我想将数据移动到另一个表(对于已删除的行)

/sf/answers/1828814921/

我也不知道这个策略的名称是什么.叫档案?两表删除?

为了使这项工作,

我需要能够做到

  1. 对于给定对象(将被删除),查找具有该对象的外键或一对一键的所有其他对象.(这可以通过/sf/answers/162053741/完成,实际上比这更难,代码不够)

  2. 插入一个新对象并让#1中找到的所有对象指向这个新对象

  3. 删除对象

(essentiall我正在做级联移动而不是级联删除,1~3步应该以递归方式完成)

这将是最方便的,以弥补这方面,它支持一个mixin delete()undelete()一个对象和一个查询集.

有人创造过这样的吗?

database django soft-delete

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

用户不会从Liferay DB中删除

我从Liferay UI中删除了用户.有时候它要求停用然后删除.有些时候只能停用.并且用户不会始终使用db.因此,不可能重新创建同一个用户,因为它会抛出诸如"已存在电子邮件地址或存在用户名alreasdy"之类的错误.

从UI删除后为什么用户没有从数据库中删除?

我正在使用liferay-portal-6.1.1-ce-ga2.

如何解决这个问题?

liferay liferay-6

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