我有一个应用程序,它通过Product
模型和表格存储产品数据。每个产品都有特定的状态可用性(多个状态),我将来需要过滤和/或搜索。我希望找到能告诉我存储这些数据的最有效方法的人。在我看来,我有两个选择。
第一个是在我的表中简单地创建 50 列,标题为每个州名并包含一个布尔值。然后我可以简单地过滤= "avail in California" if product.ca
。虽然这确实有效,但似乎有点麻烦,尤其是在搜索多状态可用性时。
第二种选择是简单地拥有一个存储可用状态数组的列(“状态”),然后按= "avail in California" if product.states.include? "CA"
. 出于两个原因,这似乎是一个更好的解决方案。首先,它只允许一个更干净的数据库表。其次,更重要的是,我可以允许我的用户通过简单地将用户的输入保存为变量(user_input)然后= "avail in California" if product.states.include? user_input
. 这个解决方案确实需要更多的工作,但是当将产品保存在数据库中时,因为我不能简单地检查一个布尔值。
我认为选项二最有意义,但我希望就为什么或为什么不提供一些建议。我发现了一些类似的问题,但它们似乎并没有解释哪种解决方案会更好,只是如何完成每个问题。
我应该怎么办?