如果不考虑问题版本的问题,那一个表两个字两个字段更清晰一些。
id(uuid),
title(string),
question(string), // 正式版本的问题
createdOn(timestamp),
lastModified(timestamp),
author(string),
type(enum),
flag(enum),
underChecking(boolean), // 是否存在审核中的版本
changed(string), // 审核中的问题版本
changedOn(timestamp),
... //其他字段
这样的结构,question为问题的发布版本。默认情况下underChecking为false,changed为空,lastModified与createdOn相同,changedOn为空。
当用户发起修改问题的请求时,underChecking为true,changed为修改后的待审核版本,changedOn为修改提交的时间。
审核通过,underChecking为false,question替换为changed,changed置空,lastModified替换为changedOn,changedOn置空。
考虑问题的版本,就需要checks表,所有问题都存在checks表中,在questions表中关联checks的id,决定显示哪一个版本。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…