【问题标题】:Using of has_one association for model with encrypted primary key对具有加密主键的模型使用 has_one 关联
【发布时间】:2015-09-29 08:03:31
【问题描述】:

我有AddressZipCode 模型。 Address 模型有 encrypted_post_code 字段,ZipCodecode 字段。我想在 has_one 关联的帮助下使用指定字段绑定 Address 记录和 ZipCode 记录。目前我需要它来使用诸如includes、preload、eager_load等ActiveRecords功能。

很遗憾,地址记录的所有字符串字段都是加密的(这是客户的要求)。我不能使用has_one :zip_code, primary_key: :post_code, foreign_key: :code,因为地址表中没有 post_code 字段,它只包含 encrypted_post_code 字段。

请告知如何解决这个问题。

【问题讨论】:

    标签: ruby-on-rails activerecord encryption has-one


    【解决方案1】:

    我认为您的客户并不真正了解加密的好处。但是,这并不重要,因为您的数据库应该通过id 而不是加密的邮政编码进行关联。

    因此,您的邮政编码表可能包含 id, encrypted_post_code 列,然后地址只有一个 postcode_id 字段,并以这种方式进行连接。这样您就可以完全避免处理加密的邮政编码,直到您需要找出真正的邮政编码是什么,然后通过关联查找它并解密它。

    【讨论】:

    • 谢谢!你是对的,它会起作用,但是有没有办法不改变表格的方案?会很痛的。
    • 只需通过迁移来更改它,最好花一点时间立即获得它,而不是永远与奇怪和不直观的东西斗争。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多