我有用户表和赎回表。所以出于安全考虑,我们对用户表email和mobile列进行了加密。
加密前的用户表列:
id | mobile | email | name |
加密后的用户表列:
id | name | email_ciphertext | mobile_ciphertext | email_bidx | mobile_bidx
用户.rb
has_many :redemptions
赎回.rb
属于:用户
所以在一个地方,我想得到赎回信息以及用户的详细信息。我在加密用户的手机和电子邮件之前的查询是
Redemption.joins(:user).group('users.id, users.mobile').select('users.id AS uid, users.name AS uname, users.email AS uemail, users.mobile AS umobile, count(distinct(redemptions.id)) AS total)
所以这将给我用户和他们的赎回计数。既然我已经使用lockbox和blindindex对数据进行了加密,并且从users表中删除了email和mobile列,那么我应该采用什么方法来实现上述查询的相同结果呢。
1条答案
按热度按时间pod7payv1#
如果您尝试按用户获取兑换计数,您可以执行以下操作:
然后在单独的查询中查询用户信息。
然后把它们结合起来