【发布时间】:2016-09-11 15:12:22
【问题描述】:
我正在编写一个 Rails 引擎来销售您自己网站上的活动门票。我正在实施门票折扣。我们将有很多潜在的折扣:
- 所有门票 10% 折扣
- 购买 x 票或更多票可享受 10% 的折扣
- 买x送一
- 购买减 5 美元
- 购买 x 票或更多票可减 $5
- 等
我有一个折扣表,对于正在进行的每种折扣,我需要存储多种属性。我想我一般都喜欢回避 STI,因为我们正在进行的折扣种类繁多,而且在处理类似类型的折扣时很容易混淆数据。
我希望在 postgresql 中有一个使用 hstore 的属性列。但我还必须提供对 MySQL 和 SQLite 的支持。是否有一些简单的跨数据库兼容方法可以在任何给定的 SQL 数据库中存储类似 NoSQL 的数据?我应该用 Ruby 序列化所有内容吗? (我不会经常需要针对该列中的特定属性运行查询。)
【问题讨论】:
-
可能类似于serialization?
-
我提到了这一点,但是在表上进行查询几乎是不可能的,而如果我在 MySQL 中手动执行某项操作则只是“困难”,或者使用 HStore 完全“容易”。我不想失去 Postgres 为使用它的人带来的好处。
标签: ruby-on-rails database-design nosql gem