diff --git a/app/models/user_profile_view.rb b/app/models/user_profile_view.rb new file mode 100644 index 000000000..327da5453 --- /dev/null +++ b/app/models/user_profile_view.rb @@ -0,0 +1,5 @@ +class UserProfileView < ActiveRecord::Base + validates :user_profile_id, presence: true + validates :viewed_at, presence: true + validates :ip_address, presence: true +end diff --git a/db/migrate/20150914021445_create_user_profile_views.rb b/db/migrate/20150914021445_create_user_profile_views.rb new file mode 100644 index 000000000..04c085a53 --- /dev/null +++ b/db/migrate/20150914021445_create_user_profile_views.rb @@ -0,0 +1,15 @@ +class CreateUserProfileViews < ActiveRecord::Migration + def change + create_table :user_profile_views do |t| + t.integer :user_profile_id, null: false + t.datetime :viewed_at, null: false + t.inet :ip_address, null: false + t.integer :user_id + end + + add_index :user_profile_views, :user_profile_id + add_index :user_profile_views, :user_id + add_index :user_profile_views, [:viewed_at, :ip_address, :user_profile_id], where: "user_id IS NULL", unique: true, name: 'unique_profile_view_ip' + add_index :user_profile_views, [:viewed_at, :user_id, :user_profile_id], where: "user_id IS NOT NULL", unique: true, name: 'unique_profile_view_user' + end +end