Setup do Postgres
Com o objetivo de criar um sistema mais abrangente e adaptável, nesta etapa desenvolvemos a arquitetura de um banco de dados escalável capaz de suportar a criação de múltiplos layouts.
Essa estrutura se baseia em 5 entidades: User, Directorate, Layout, Elements, e Props, cada uma tem o seu objetivo explicado mais a frente. Mas antes vale resaltar que essa implementação utiliza o GORM, uma biblioteca de mapeamento objeto-relacional para Go, para facilitar a interação com um banco de dados PostgreSQL.
A entidade User representa um usuário logado em nossa aplicação, tendo os campos email, password, name, role e DirectorateRefer, que é a relação estabelecida com a entidade de Directorate. Assim, um usuário pode estar associado a várias diretórias.
- Incorpora os campos padrão do GORM para um modelo de banco de dados
- ID é a chave primária autoincrementada única do usuário
- Name representa o nome do usuário
- Email é o endereço de e-mail do usuário
- Password é a senha do usuário
- Role é o papel do usuário, com um valor padrão de 1
- DirectorateRefer é uma referência à diretoria do usuário
- Directorate é a diretoria à qual o usuário pertence
- Incorpora os campos padrão do GORM para um modelo de banco de dados
- ID é a chave primária autoincrementada única
- Directorate representa o nome da diretoria
A entidade Layout pode ser associada a n usuários, tendo em seus campos todas as informações necessarias para constuir e organizar n componentes.
- Inclui os campos padrão do GORM para um modelo de banco de dados.
- ID é a chave primária do layout.
- ElementsRefer é uma referência aos elementos do layout.
- UserRefer é uma referência ao usuário proprietário do layout.
- Elements é a estrutura de elementos associada ao layout.
- Index é a posição dos elementos no layout.
- Incorpora os campos padrão do GORM para um modelo de banco de dados
- ID é a chave primária autoincrementada única do elemento
- Name é o nome do elemento
- PropsRefer é uma referência aos atributos (props) do elemento
- Props é a estrutura de atributos associada ao elemento
- Incorpora os campos padrão do GORM para um modelo de banco de dados
- ID é a chave primária autoincrementada única do atributo
- Value é o valor do atributo
- Incorpora os campos padrão do GORM para um modelo de banco de dados
- Identifier é o identificador do sensor
- Name é o nome do sensor
- CoordX é a coordenada X do sensor
- CoordY é a coordenada Y do sensor