Estou construindo um site que é uma comunidade de aluguel de imóveis, com a funcionalidade central voltada para discussões específicas de cada cidade. Haverá dados de usuários que especificam as cidades sobre as quais eles têm conhecimento e qual é o relacionamento deles com essas cidades (atualmente moram lá, moravam lá, etc.), e os usuários também poderão se inscrever em cidades em que desejam investir, mas sobre as quais não têm conhecimento. Todas as cidades serão categorias, com um campo personalizado para marcar seus dados geocodificados, permitindo que os usuários naveguem pelas cidades em um mapa.
O ponto em que estou indeciso é como estruturar isso do ponto de vista da eficiência do banco de dados. Quando você estiver em uma página de cidade, vou exibir um feed que mostra os “especialistas membros” daquela cidade. Se eu tiver que consultar todos os usuários e mapear seus campos personalizados e o hash do campo personalizado “cidades de especialista” toda vez que renderizar uma página de categoria, sinto que isso seria bastante lento, especialmente conforme o número de usuários e cidades cresce.
Se eu fosse construir isso no meu próprio aplicativo Rails, isso seria facilmente resolvido com algumas tabelas de junção e relacionamentos model hasmanythrough ou algo assim. O que estou querendo saber aqui é qual é a abordagem recomendada para um plugin que precisa de uma tabela de junção. Parece que migrações e tabelas personalizadas são desencorajadas e que geralmente é melhor usar campos personalizados ou o PluginStore – não consegui encontrar documentação real sobre o PluginStore, mas estou no processo de investigar.
Achei que seria prudente perguntar sobre a abordagem “oficialmente recomendada pelo Discourse” antes de me aprofundar demais em qualquer direção.
Obrigado ![]()
Zach