私は電子メールの購読、調査、およびコメントフォームをサポートするアプリケーションを持っています。私はそれぞれ(サブスクリプション、SurveyResponse、Comment)のモデルを持っています。名前、電子メール、電話などの共有情報を保存するVisitorモデルもあります。匿名ユーザーの追跡
私はモデルをどのように結びつけるのがベストかと思います。各モデルとVisitorモデルとの間に1対1の関連付けを使用すると、各イベントが個別に処理されます。だから、John Doeがコメントとアンケートを投稿した場合、彼は訪問者テーブルに2つのレコードを取得します。私はこのアプローチに傾いています - それは簡単です。
一方、電子メールの一意性制約を持つVisitorに対して一対多の関連付けを設定できました。私は、既存のレコードに各イベントを結びつける試み、のようなものでした:私は右のレコードを取得していますことを確信することができませんので、
@visitor = Visitor.find_by_email(params[:email]) || Visitor.new(params)
このアプローチは問題と思われます。 2人の異なるユーザーが「[email protected]」を使用してコメントを送信するとどうなりますか?可能性は低いですが、可能です
この問題にアプローチするより良い方法はありますか?
いくつかの明確化:
私が今まで通常のサイト訪問者のための本格的なユーザー・アカウントを持っていることを計画していませんよ。
gregありがとうございました。これは、私がすでに考えていたことに対するいくつかの追加サポートのようです。私は将来的にクッキーを追加するかもしれませんが、できるだけシンプルに保つつもりです。 – dojosto