Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Java “数据库”;未决状态“;设计表_Java_Spring_Postgresql_Jpa - Fatal编程技术网

Java “数据库”;未决状态“;设计表

Java “数据库”;未决状态“;设计表,java,spring,postgresql,jpa,Java,Spring,Postgresql,Jpa,我有一个已经构建的项目(它使用Spring和JPA)。其中一项功能允许用户在数据库中添加一个位置(每个位置都可以与多个标记关联,它们还必须经过管理员的批准) 我想设置一个“挂起”状态系统,当用户添加一个新位置时,这个位置将被添加到数据库中(在我的例子中是postgreSQL) 但处于“待决状态”,实际上并不被视为最终场所。(然后管理员必须批准该位置,以使其他用户可见) Spring或JPA是否提供了任何机制来存档此文件? 或者唯一的方法是重新设计表并修改所有查询?(如果是这样的话,什么样的设计才

我有一个已经构建的项目(它使用Spring和JPA)。其中一项功能允许用户在数据库中添加一个位置(每个位置都可以与多个标记关联,它们还必须经过管理员的批准)

我想设置一个“挂起”状态系统,当用户添加一个新位置时,这个位置将被添加到数据库中(在我的例子中是postgreSQL) 但处于“待决状态”,实际上并不被视为最终场所。(然后管理员必须批准该位置,以使其他用户可见)

Spring或JPA是否提供了任何机制来存档此文件? 或者唯一的方法是重新设计表并修改所有查询?(如果是这样的话,什么样的设计才是好的?添加一个额外的列(状态)?或者使用单独的表等等

ps:所以目前我的设计如下:

餐桌位置: id\u地点/姓名/等

表格标签: id_标签/名称/等

表place_标记(将每个标记链接到其位置) 身份证/身份证所在地/身份证所在地
谢谢!

根据评论和讨论,我所看到的实现和完成此任务的最常见和有效的方法是在现有表中增加一列,例如“已验证”

一些好处包括:

  • 最小化数据库更改

  • 查询的有效性不会下降

  • 业务逻辑和功能代码不会发生剧烈的变化(因为 使用现有方法等)

同样,这将根据观点、经验、系统复杂性等发生变化


希望能有所帮助。

那么,您本质上是想添加一行数据,并且只有在管理员验证后才将其激活?正是这样,考虑到我的项目相当大。归档此数据的最佳方式是什么?采用新的数据库设计(这意味着进行大的重构,因为所有现有查询都将被破坏)或者有一个重复的表“pending_place、pending_tag和pending_place_tag”?这两个表都没有,我们这样做的方式是有一个名为“validated”的额外列“这是一个罐头。当用户提交信息时,它保持为false,这样他们可以查看但它不是活动的,当管理员批准时,它变为true,然后数据在应用程序中变为活动的。这是最简单的方法。如果你想的话,很高兴把它作为一个正式的答案,这也是我的方法之一,但这是最好的方法吗(当然很容易,但我在这里寻找最好的设计)。我也完成了我原来的问题。这是否意味着我还必须在另外两个表中添加一个额外的列?最好是尽可能少的更改和规范化(数据库设计)。这取决于数据库有多大,如何运行所有这些因素。从我所看到的情况来看,向现有表中添加一个具有微小数据集的列是最好的,因为代码和功能代码的业务逻辑也不需要进行重大更改(所以从长远来看,填充的可能性较小)