このアプリケーションはRuby on Railsで書かれていますが、私が直面している問題は言語関連のものよりもデザイン上の問題です。ユーザ認証デザインは、ユーザですか?
システムは、レジストリを維持するために多くのユーザにサービスを提供します。それは人と物を関連づけています。このように、所有者を表すPersonというモデルがあり、レジストリを管理する人を表すUserというモデルがあります。
これで、元のデザインでは不要だった個人の詳細を人がログインして変更できるようにする新しい要件が生まれました。
問題は、この新しい要件を満たすためにアプリケーションをリファクタリングする方法ですか?
簡単な解決策の1つは、ログイン資格情報を要求し、ユーザーと個人エンティティをリンクする人物ごとにユーザーを作成することですが、firstname、surnameなどのいくつかのフィールドは両方のクラスにあり、特にDRYではありません。正確にデータの人々は変更することができます。 UserとPersonは別々のテーブルに格納されています。
私が考えていたもう1つの可能性は、もう一方を拡張することですが、分離した表にデータを置くと、少し面倒です。さらに、論理的な拡張はユーザ<になります - ユーザとしての人は(一般的に)人ですが、実装について考えている人< - ユーザはかなり簡単です。
一つの最後のオプションは、ユーザーをスクラップしてログインするだけで、ログインこれらのフィールドの半分は空ではありません人のための空のログオンフィールドを離れる人へのログイン資格情報を移動することができます。
あなたは考えることができますより良い解決策?