Executando verificação de segurança...
2

[HELP] subdominios

Galera estou criando uma aplicação web mesmo, porem quero fazer ela para outras empresas/pessoas possa acessar atraves de um subdominio (ex: meunome.site.com.br). Seria pelo subdominio mesmo?

Tenho algumas duvidas em relação a isso pois:

1 - com esse subdominio criado e tiver algums dados que outros usuarios vao mandar como vou saber que e para aquela pessoa/empresa, serque e atraves do subdomino mesmo? ou tem que vincular algo como a id do banco e tal?

2 - existe alguma forma melhor de trabalhar com esses subdominio? ou todos eles vou ter que vincular na plataforma onde meu site esta hospedado?

Carregando publicação patrocinada...
2

Vou começar te mandando um link para entender o que é multitenancy (tem outras respostas minhas e de outras pessos lá sobre o assunto). É disso que parece que quer saber.

As estratégias de como fazer varia muito, mas ou você usa essa técnica ou faz tudo separado, cada um tem vantagens e desvantagens.

Se optar por um banco de dados único para todos os possíveis clientes então precisa de alguma informação que diferencia os dados, não tem como fugir disto.

E claro, a maneira de modelar o banco de dados vai variar de acordo com a necessidade específica, e cada jeito também tem vantagens e desvantagens. Você pode ter o subdomínio como parte da chave (para ficar eficiente) ou ter um id que remete ao subdomínio, o que fica mais normalizado, mas nem sempre é a melhor solução.

A questão é só pegar de qual domínio está vindo, uma informação sempre disponível, e varia de a forma de pegar de acordo com a tecnologia que está usando, mas toda requisição tem isso (a não ser que use HTTP 1.0, que praticamente não existe mais, até 1.1 já tem essa informação) e fazer a requisição ao banco considerando isso como parte da seleção de dados que está querendo.

Na verdade, porque não aceitar que o cliente use domínio próprio dele? O que você quer fazer pode não ser o que o cliente quer. E dá na mesma para você desenvolver de um jeito ou de outro.

Não que mude muita coisa, mas tem que estar sob seu domínio ou ele pode usar algo dele para interagir com sua plataforma? Tudo isso são detalhes a se pensar.

Em primeiro lugar precisa formular o problema muito bem, para depois buscar a solução ideal. Sem muita clareza de onde quer chegar é complicado achar uma solução. Não sabemos exatamente oque você precisa, só temos uma ideia superficial.

Para escolher o que é melhor tem que estudar profundamente vários aspectos da computação, porque não sai música com 3 notas, menos ainda com uma só. Ou tem que usar o método científico de testes e fazer todas as formas possíveis e ver qual fica melhor. Ou contratar quem tem experiência com isso.

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Showww muito obrigado cara vou dar uma estuda boa sobre esse assunto, e que minha intenção e montar uma agenda para empresas da cidade onde moro e entro esse parte, no caso agora preciso que cada um tenha seu subdominio para ficar mais formal e muito mais profissional sabe?, ai o problema que tenho e que o usuario que vai cadastrar nessa agenda como meu banco vai saber que e naquela X empresa e tal, vou dar uma olhada e uma estudada.

1

Conforme foi mencionado, você terá que aplicar multitenancy. É divertido!
Eu quero compartilhar minha experiência ao trabalhar em grandes empresas, e nessas empresas mesmo tendo grana (dinheiro, money) quando eles começam a vender um novo produto quase nada é automatizado, apenas o necessário. Depois que o produto apresenta boa saída, (é bem vendido) é que eles começam a automatizar alguns processos.

Pensando nisso eu sugiro a você, que faça escolhas que você possa economizar. Principalmente no começo do projeto.

vejá, trabalhar com subdominios utilizando uma VPS pode sair um pouco caro no início,
e mesmo que para você não seja caro, estará utilizando um caminhão para carregar uma laranja.

Algumas hospedagens compartilhadas oferecem à baixo custo uma boa oportunidade de começar, e validar o produto.

Agora vai minha sugestão sobre subdomínios: Sugiro que você trabalhe com /rotas
ao invés de subdomínios.
exemplo: seucalendario/empresa-1
seucalendario/empresa-2

Motivo: a maioria das hospedagens não permitem criar um subdomínio via script, apenas via painel da hospedagem.
Ou seja, quando entrar uma empresa nova você terá que correr e criar o subdomínio lá manualmente, isso não faz sentido.

Logo, você trabalhando com rotas requer um pouco mais de cuidado para não conflitar dados entre empresas. Pois quando você trabalha com subdomínio, se você usa o LocalStorage do navegador por exemplo, o próprio navegador separa os dados entre os diferentes subdomínios, porém trabalhando com rotas você deve ter o cuidado de separar esses dados se necessário.
Conclusão:

  • Pense em disponibilizar algo que atenda a necessidade do cliente.
  • Pense em experiência do usuário.
  • Aproveite a tecnologia para reduzir custos e por último preocupe-se com a tecnologia que vai utilizar.

Acredite: com um servidor de 512MB RAM, CPU 1GHz, 15GB SSD você faz acontecer.

2

Sobre a parte do banco, veja esses vídeos, grandes empresas
grandes mesmo. Ifood por exemplo.
Falam como fazem seus esquemas > https://www.youtube.com/@pgconfbrasil8077/videos

Deve te ajudar!
Quando ao subdominio, é simples criar um ou dezenas.
Nginx como servidor ou proxy resolve isso fácilmente!

A questão é, como será a aplicação.
Como será orquestrado!

Pense num sistema de usuários por exemplo.
JWT pra saber quem é a pessoa
Da pra saber de qual empresa é!

Dentro do painel de administração só orquestrar
Os logins com as empresas com JWT ou sessões!

Abraços

1

Shoow valeu pela respostaaa, e que minha intenção e montar uma agenda para empresas da cidade onde moro (tipo para salao de cabeleireiro e tal) o problema tava nesses subdominios que para ficar mais profissional entende tipo barbeariatal.site.com.br(mais ou menos isso), mais vou dar uma olhada. Meu problema maior ta em quando o usuario for agendar, como vou saber para qual e, sera que so para o dominio basta?