Criando estruturas de banco de dados (DTR) com o dbdiagram.io
Durante muitos anos, sempre que tenho a necessidade de criar uma estrutura para banco de dados, envolvendo tabelas e seus relacionamentos, eu lembro do dbdiagram.io
Acessando o link acima, temos a demostração básica do que a app é capaz de fazer.
Do lado ESQUERDO, temos uma representação em texto das tabelas. E do lado DIREITO, o diagrama. O que todos nós devs adoramos fazer? Escrever código! E o dbdiagram foi feito especialmente para nós
Começando
Você pode criar uma conta para assim poder guardar seus diagramas, ou começar imediatamente a criar um diagrama clicando no botão go to app
. Ao clicar nele, um diagrama é prontamente criado. Vamos então "limpar" esse diagrama da melhor forma, selecionando todo o texto à esqueda da tela e apertando delete (ou backspace se for for contra as regras da sociedade)
Temos agora um diagrama vazio, no limbo:
Criando o tabnews
Como o site é open source, podemos dar uma 👀 na sua estrutura de tabelas e fazer um diagrama de tabelas. Fica aqui o "dever de casa" para você fazer o diagrama e mandar um PR para o repositório, assim é possível ver de forma visual a estrutura das tabelas. Bora lá!
Ao acessar o primeiro migration que cria a tabela users
, podemos extrair os seguintes campos:
- id (uuid)
- username (varchar)
- email (varchar)
- password (varchar)
- features (varchar)
- created_at (date)
- updated_at (date)
Vamos então criar essa tabela no dbdiagram:
Asssim que começamos a escrever a estrutura da tabela, o seu diagrama começa a ser desenhado. Eu nao vou colar aqui a estrutura em modo texto, para que você mesmo possa digitar e ver como a ferramenta funciona.
O segundo migration cira uma tabela chamada activate_account_tokens
com os seguintes campos:
Novamente deixo apenas a imagem para que você possa digitar e ver a tabela sendo criada. Como podemos ver, existe um relacionamento um para muitos de users
para activate_account_tokens
. Ou seja, um user
pode ter vários activate_account_tokens
. Para representar isso no diagrama, usamos o atributo ref
, da seguinte forma:
Table activate_account_tokens {
user_id uuid [ref: > users.id]
}
Veja que no campo user_id
, adicionarmos a nomenclatura [ref: > users.id]
configurando assim o relacionamento. O resultado é exibido a seguir:
Para representar um relacionamento "um para um", ao invés do >
usamos -
. Experimente trocar lá e ver o que acontece.
De posse desse diagrama até agora, você já consegue olhar os outros migrations e montar a sua versao DTR do tabnews! Fica como dever de casa postar como ficou nos comentários! A verão mais bonita ganha o selo delicinha do @filipedeschamps
A versão free suporta até 10 diagramas, e exportar para png/mysql. A documentação contém tudo que vc precisa saber para criar opções mais avançadas de diagramas