Mysql 混乱。。逻辑查询

Mysql 混乱。。逻辑查询,mysql,ruby-on-rails,Mysql,Ruby On Rails,我有一本书的模型,书的状态可以是新的, 老了,很老了。它可以是新的,也可以是旧的,也可以是非常旧的。我想 在数据库中保存用户选择。你建议我如何实施这一点 我可以为书的状态创建一个新的模型,但我觉得一定有更好的方法。如果我正确理解你的问题,书的状态有五种可能: 新的 旧的 很老 新旧 老&非常老 假设我是对的,你可以用一个。这只需要向数据库中添加一个新列,而不需要新的模型 如果您还没有一个列,请首先添加一个状态列: # In a migration add_column :books, :stat

我有一本书的模型,书的状态可以是新的, 老了,很老了。它可以是新的,也可以是旧的,也可以是非常旧的。我想 在数据库中保存用户选择。你建议我如何实施这一点


我可以为书的状态创建一个新的模型,但我觉得一定有更好的方法。

如果我正确理解你的问题,书的状态有五种可能:

  • 新的
  • 旧的
  • 很老
  • 新旧
  • 老&非常老
  • 假设我是对的,你可以用一个。这只需要向数据库中添加一个新列,而不需要新的模型

    如果您还没有一个列,请首先添加一个
    状态
    列:

    # In a migration
    add_column :books, :status, :integer
    add_index :books, :status
    
    (如果您不希望一本书的状态为no,您可能还希望将
    null:false
    添加到
    add\u列中。)

    然后将其添加到您的
    书籍
    模型中:

    class Book < ActiveRecord::Base
    
      enum status: [:new, :old, :very_old, :new_and_old, :old_and_very_old]
    
    end
    


    另一种方法是在名为
    new
    old
    very_old
    的书中添加布尔列,但这需要您添加一系列验证(例如,确保一本书不能既“新”又“非常旧”。

    如果我正确理解您的问题,一本书的地位有五种可能:

  • 新的
  • 旧的
  • 很老
  • 新旧
  • 老&非常老
  • 假设我是对的,你可以用一个。这只需要向数据库中添加一个新列,而不需要新的模型

    如果您还没有一个列,请首先添加一个
    状态
    列:

    # In a migration
    add_column :books, :status, :integer
    add_index :books, :status
    
    (如果您不希望一本书的状态为no,您可能还希望将
    null:false
    添加到
    add\u列中。)

    然后将其添加到您的
    书籍
    模型中:

    class Book < ActiveRecord::Base
    
      enum status: [:new, :old, :very_old, :new_and_old, :old_and_very_old]
    
    end
    


    另一种方法是在名为
    new
    old
    very_old
    的书中添加布尔列,但这需要您添加一系列验证(例如,确保一本书不能既“新”又“非常旧”。

    如果我正确理解您的问题,一本书的地位有五种可能:

  • 新的
  • 旧的
  • 很老
  • 新旧
  • 老&非常老
  • 假设我是对的,你可以用一个。这只需要向数据库中添加一个新列,而不需要新的模型

    如果您还没有一个列,请首先添加一个
    状态
    列:

    # In a migration
    add_column :books, :status, :integer
    add_index :books, :status
    
    (如果您不希望一本书的状态为no,您可能还希望将
    null:false
    添加到
    add\u列中。)

    然后将其添加到您的
    书籍
    模型中:

    class Book < ActiveRecord::Base
    
      enum status: [:new, :old, :very_old, :new_and_old, :old_and_very_old]
    
    end
    


    另一种方法是在名为
    new
    old
    very_old
    的书中添加布尔列,但这需要您添加一系列验证(例如,确保一本书不能既“新”又“非常旧”。

    如果我正确理解您的问题,一本书的地位有五种可能:

  • 新的
  • 旧的
  • 很老
  • 新旧
  • 老&非常老
  • 假设我是对的,你可以用一个。这只需要向数据库中添加一个新列,而不需要新的模型

    如果您还没有一个列,请首先添加一个
    状态
    列:

    # In a migration
    add_column :books, :status, :integer
    add_index :books, :status
    
    (如果您不希望一本书的状态为no,您可能还希望将
    null:false
    添加到
    add\u列中。)

    然后将此添加到
    Book
    模型中:

    class Book < ActiveRecord::Base
    
      enum status: [:new, :old, :very_old, :new_and_old, :old_and_very_old]
    
    end
    


    另一种方法是向名为
    new
    old
    very_old
    的书中添加布尔列,但这需要添加一系列验证(例如,确保一本书不能同时是“新的”和“非常旧的”。

    选项也一样:1)新的、2)旧的、3)非常旧的,4)新的和旧的以及5)旧的和非常旧的?您是否希望能够轻松地为大型数据集找到新的、旧的、新的和旧的书籍?将用户的选择保存在数据库中是什么意思?用户在表单上做出选择,您决定如何存储它们。你想把这里的两处房产合并吗?“新的、旧的和非常旧的都是年龄,有条件,有造币厂,有破烂的,或被滥用的。”乔治梅洛。我的选择可以是新的、旧的、非常旧的、新的和旧的、新的和非常旧的、旧的和非常旧的。@TonyHopkinson。是的,你说得对。在我的例子中,用户在复选框的帮助下对表单进行选择,然后我希望将这些选择存储在数据库中。用户的选项可以是上面写的任何一种。选项也可以是:1)新的,2)旧的,3)非常旧的,4)新的和旧的,5)旧的和非常旧的?你想在大数据集中轻松找到新的,旧的,新的和旧的书籍吗?你是什么意思将用户的选择保存在数据库中?用户在表单上做出选择,您决定如何存储它们。你想把这里的两处房产合并吗?“新的、旧的和非常旧的都是年龄,有条件,有造币厂,有破烂的,或被滥用的。”乔治梅洛。我的选择可以是新的、旧的、非常旧的、新的和旧的、新的和非常旧的、旧的和非常旧的。@TonyHopkinson。是的,你说得对。在我的例子中,用户在复选框的帮助下对表单进行选择,然后我希望将这些选择存储在数据库中。用户的选项可以是上面写的任何一种。选项也可以是:1)新的,2)旧的,3)非常旧的,4)新的和旧的,5)旧的和非常旧的?你想在大数据集中轻松找到新的,旧的,新的和旧的书籍吗?你是什么意思将用户的选择保存在数据库中?用户在表单上做出选择,您决定如何存储它们。你想把这里的两处房产合并吗?新的