Criando bd no mysql

Boa tarde galera…to com uma duvida.

estou querendo criar um sistema para gerenciamento de escolas. ate ai tudo bem…so que sempre que faço um sistema eu uso apenas um banco de dado. crio as tabelas no mysql e tals. só que queria criar um sistema onde o usuário fosse “a escola”, ou seja, vou cadastrar vareas escolas e cada uma terá o seu perfil para gerenciar seus alunos e professores. A duvida é a seguinte: Como eu crio um banco onde se possa ter perfis diferentes para cada escola?

se alguém puder me ajudar…fico grato.

valeu

Você pode utilizar Schemas, dessa forma você vai conseguir fazer a separação de quem mexe em quais tabelas, mas o banco continua sendo o mesmo. Aqui

Ou você pode criar tudo junto e controlar o acesso pela aplicação e o banco de dados compartilhado entre todos.

Valeu rodrigo…vou dar uma olhada nesses Schemas

rodrigo…: (

cara. dei uma olhada aqui em alguns tutos…eu entendi como funciona…mas estou usando o phpmyadmin para o banco…e não consegui criar os schema…

alguma dica?

Como é MySQL acho que você pode fazer em SQL mesmo, apesar de ser mais trabalhoso.

Para criar o Schema

E para as configurações procure o SQL que as faça;

Joia mano…vou correr atras…se der certo posto aqui

So mais uma coisa:

schema é o mesmo bando de dados relacional? ou não tem nada haver?

Banco de dados relacional é o tipo de banco de dados que você está utilizando, baseado em tabelas e em estruturas/dados gerenciados por SQL.
Oracle, Postgres, MySQL, MariaDB, SQL Server são todos relacionais.
Existem bancos de dados não relacionais, normalmente definidos pelo nome NoSQL (Not Only SQL), como Cassandra e MongoDB.

Schemas podem ser entendidas como divisões dentro destes bancos de dados relacionais.

P.S.: Como você tem o MySQL, eu sugeriria instalar o MySQL Workbench. Vai facilitar a tua vida.

tua resposta era o q eu imaginava…so fiz mesmo pra ter certeza. vou instalar o MySQL Workbench, valeu mano…pelas dicas

Deu certo…criei os schemas…mas ai surgiu outra duvida:

eu conecto aonde…no banco ou nos schemas criados?

Não entendi muito bem a sua pergunta, mas você irá conectar no banco com o usuário e senha de um schema criado, sendo assim aquele usuário só terá acesso ao schema que você permitir.

Apesar de não ser isso, nesse primeiro momento pense no schema como um login com permissões de quais tabelas você poderá acessar e visualizar.

Você terá um banco de dados onde existem as tabelas.

tabela1, tabela2, tabela3, tabela4.

Todas essas tabelas estão dentro do mesmo banco.

Mas você precisa dar acesso apenas a tabela1 e tabela2 a um usuário.
Você pode criar um schema e atribuir essas tabelas a ele.
E ao criar um novo usuário, você permite que ele visualize e faça alterações apenas esse Schema(tabela1 e tabela2).

Deu pra entender melhor?

Banco e schema no MySql não são a mesma coisa?? Pode omitir o banco na string de conexao ou conectar em um deles.

Eu concordo, mas ele queria criar apenas um banco e dar acessos diferentes a tabelas para aplicações que utilizassem o MESMO banco e aqui na empresa nos utilizamos os schemas pra isso.

Nenhum problema nisso, só quis dizer que banco e schema são a mesma coisa no MySql.

Então eu crio o banco de dados e as tabelas. os meus clientes iram acessar o mesmo banco com senha e login. mas nem todos teram acesso as tabelas, somente aquelas que eu permitir…pra isso eu crio os schemas que darão permissao a um usuario especifico.

Pergunta:
quero criar um sistema de gerenciamento de farmacias. o Usuario seria as farmacias, e cada uma delas tera seu estoque de remedios e funcionarios e outra funcionalidades. os schemas dentro das tabelas serviriam para cada farmacia acessar seu perfil. A pergunta é: fazendo assim, eu teria que modelar o banco manualmente?

Não, você pode usar frameworks para criar as tabelas, pois com schemas você pode ter duas tabelas de mesmo nome dentro de um banco, pois ele estará vinculada ao schema(Que pode ser entendido como vários bancos de dados dentro de um banco de dados).

: 0…caraca…valeu Rodrigo…vou continuar implementando assim…o resultando vou continuar postando aqui…

FUNCIONA…kkkkkkkkkkkkk…valeu irmão. fiz exatamente como vc falou…criei duas tabelas iguais e nomeei de TabelaUs1 e TabelaUs2, (vinculadas aos schemas ) dai criei dois usurários fictícios: usurário1 e usurário2. dai dei permissão pra cada um entrar nos seus schemas…e o resultado? O usuario1 não vê o usuario2 e vice versa, cada um so entra na sua tabela e pronto…kkkkk…muito bom…gostei da explicação e da ajuda…Vou usar esse metodo pra todos os meus sistemas…

:smile:

1 curtida

Que bom que gostou do método e funcionou.

Se estiverem devidamente vinculadas ao Schema, você pode até criar de nomes idênticos, TabelaUs e TabelaUs, o banco vai enxergar as mesmas como schema1.TabelaUs e schema2.TabelaUs
E quando um usuário entrar, ele vai só visualizar os dados da tabela que ele tem acesso.