Pessoal, Estou seguindo o curso junto com a apostila da Caelum e li toda documentação do rails relacionada às associações, mas estou com dúvida na melhor forma de modelar uma aplicação.
Minha aplicação tem um modelo de usuários e um modelo de restaurantes. Tanto os usuários quanto os restaurantes possuem apenas um endereço.
Tabela de restaurantes
create_table "restaurants", force: :cascade do |t|
 t.string   "nome"
 t.text     "descricao"
 t.string   "email"
 t.string   "telefone"
 t.integer  "categoria_id"
 t.datetime "created_at",     null: false
 t.datetime "updated_at",     null: false
endTabela de usuários
create_table "users", force: :cascade do |t|
 t.string   "primeiro_nome"
 t.string   "sobrenome"
 t.string   "email"
 t.datetime "created_at",     null: false
 t.datetime "updated_at",     null: false
endMinha dúvida é a seguinte, pesando que os endereços dos restaurantes teriam que ter duas colunas a mais (latitude e longitude). Qual a melhor abordagem para modelar? Estou em dúvida se é o caso de criar duas tabelas separadas de endereços, uma com endereços para restaurantes e outra com endereços para usuários (ABORDAGEM 1) ou de criar uma associação polimórfica com uma tabela de endereços tanto para os usuários quanto para os restaurantes e criar uma tabela só com as coordenadas e vincular apenas aos restaurantes (ABORDAGEM 2).
ABORDAGEM 1
Tabela de endereço para usuários
 create_table "user_addresses", force: :cascade do |t|
    t.string   "logradouro"
    t.string   "bairro"
    t.string   "cidade"
    t.string   "uf"
    t.string   "complemento"
    t.string   "cep"
    t.integer  "user_id"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
    t.string   "numero"
    t.index ["user_id"], name: "index_addresses_on_user_id"
  endtabela de endereços para restaurantes
```
 create_table "restaurant_addresses", force: :cascade do |t|
    t.string   "logradouro"
    t.string   "bairro"
    t.string   "cidade"
    t.string   "uf"
    t.string   "complemento"
    t.string   "cep"
    t.decimal  "longitude"
    t.decimal "latitude"
    t.integer  "restaurant_id"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
    t.string   "numero"
    t.index ["restaurant_id"], name: "index_addresses_on_user_id"
  endABORDAGEM 2 -> Neste caso a tabela de endereços não teria as colunas de coordenadas e eu separaria elas em outra tabela.
Associação polimórfica
class User
  has_one :address, as: :addressable
end
class Restaurant
  has_one :address, as: :addressable
  has_one:coordinate
end
class Address
  belongs_to :addressable, polymorphic: true
endPara finalizar, caso nenhuma dessas abordagens seja a melhor, o que vocês recomendariam? (considerando que sou bem novato nesse universo de desenvolvimento).
 
            