【问题标题】:Better to Destroy or make inactive db entries最好销毁或制作非活动数据库条目
【发布时间】:2017-12-26 05:31:31
【问题描述】:

我目前正在构建一个小项目,并且遇到了一个问题,即销毁数据还是使其处于非活动状态更好。数据是一个非常简单的条目。要么你拥有一个对象,要么你没有。您可以在对象的所有权和非所有权之间切换。

【问题讨论】:

  • 你能举例说明一下吗
  • “所有权”...?无论如何,如果意思是 数据生命周期数据版本化,那是相当主观的,通常必须在架构和用法中加以考虑。
  • 例如拥有一本书。假设您购买了这本书并标明您拥有它并且它在您的收藏中。然后,您将其出售并标记为您不再拥有它。后来你决定你真的很喜欢那本书并想要另一本书,所以你标记你再次拥有它。该原始所有权条目是否应标记为非活动或已删除
  • 正在建模什么?可以提出哪些类型的查询?如何处理数据保留(是否重要)? 例如,需要当前状态和历史记录的图书馆图书借阅系统?在这种情况下,“所有权”是有道理的。然而,如果没有一个很好理解的用例,这个问题只是冒烟。这也很难回答,因为有有用的信息(可能会变成不同的关系) - 一个人拥有一本书是否重要?还书的时间重要吗?丢失或损坏的书籍怎么办?还是所需的用法根本不是“库”?
  • 一个藏书应用。您在哪里在线输入您的个人藏书。数据库里满是书,你标记你是否拥有一本书。有问题的情况是当您从集合中删除一个项目但后来重新添加它时。我应该保留旧的数据库条目并将其翻转回活动状态还是在删除它并创建一个新条目时将其删除

标签: ruby-on-rails database activerecord


【解决方案1】:

我认为在任何应用程序中,而不是销毁任何对象,而是使用ActsAsParanoid 软销毁它们,这取决于该对象是否有未来用途。

【讨论】:

  • 对象可能有未来。它不会总是。有点像为自己的收藏买了一本书然后卖掉的人。他们最终可能会为自己的收藏购买同一本书,也可能不会
【解决方案2】:

在我看来,您应该为它声明一个布尔变量,它可以根据您所需的选项改变您的值。 “0”表示丢弃的项目,“1”表示选择的项目。我希望这将是您问题的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2013-02-20
    相关资源
    最近更新 更多