... | ... | @@ -6,58 +6,62 @@ |
|
|
Aqui deve ser explicado com modelos e explicações como o Banco de Dados foi construido, onde se deve focar em:
|
|
|
|
|
|
* Como ele foi desenvolvido, com Imagens e Diagramas
|
|
|
* o Collections(Entities)
|
|
|
* Entities
|
|
|
|
|
|
|
|
|
Como a aplicação não era muito complexa o time de modelagem do banco de dados optou por utilizar o MongoDB.
|
|
|
Como a aplicação não era muito complexa o time de modelagem do banco de dados optou por utilizar o Oracle.
|
|
|
|
|
|
|
|
|
## Diagrama
|
|
|
|
|
|
![Diagrama de Banco de Dados](./diagramas/diagrama_modelagem-db-v1.0.png)
|
|
|
|
|
|
## Antigo diagrama considerando o banco não relacional (DEPRECATED)
|
|
|
## Diagrama do banco relacional
|
|
|
```
|
|
|
export interface User {
|
|
|
_id: 'ObjectID',
|
|
|
name: string,
|
|
|
password: string,
|
|
|
document: string, // cpf, coop_code
|
|
|
role: string // Enum { 'associate', 'admin', 'cooperative' }
|
|
|
agency: 'ObjectID' // agency id
|
|
|
// products: 'ObjectID'[] // products ids
|
|
|
Table annual_result {
|
|
|
year int [not null]
|
|
|
result decimal (19, 2)
|
|
|
id_coop bigint [not null]
|
|
|
primary key (id_coop, year)
|
|
|
}
|
|
|
|
|
|
export interface Cooperative {
|
|
|
_id: 'ObjectID', // coop_code e.g: 00A12
|
|
|
name: string,
|
|
|
document: string, // cnpj
|
|
|
anualResults: 'ObjectID'[], // anual results ids
|
|
|
products: 'ObjectID'[] // CooperativeProduct ids
|
|
|
Table category {
|
|
|
id_category bigint [pk, not null]
|
|
|
name varchar(255)
|
|
|
}
|
|
|
|
|
|
export interface AnualResults {
|
|
|
_id: 'ObjectID',
|
|
|
agency_id: string, // agency _id
|
|
|
year: number,
|
|
|
result: number // category id
|
|
|
Table cooperative {
|
|
|
id_coop bigint [pk]
|
|
|
cod_coop varchar(255)
|
|
|
name varchar(255)
|
|
|
}
|
|
|
|
|
|
export interface CooperativeProduct {
|
|
|
_id: 'ObjectID',
|
|
|
value: number,
|
|
|
weight: number,
|
|
|
product: 'ObjectID' // Product ids
|
|
|
Table cooperative_product {
|
|
|
value decimal(19,2)
|
|
|
weight double
|
|
|
id_coop bigint [not null]
|
|
|
id_prod bigint [not null]
|
|
|
primary key (id_coop, id_prod)
|
|
|
}
|
|
|
|
|
|
export interface Product {
|
|
|
_id: 'ObjectID',
|
|
|
name: string,
|
|
|
category: 'ObjectID' // category _id
|
|
|
Table product {
|
|
|
id_prod bigint [pk, not null]
|
|
|
name varchar(255)
|
|
|
id_category bigint
|
|
|
}
|
|
|
|
|
|
export interface Category {
|
|
|
_id: 'ObjectID',
|
|
|
name: string
|
|
|
Table user {
|
|
|
id_user bigint [pk, not null]
|
|
|
document varchar(255)
|
|
|
name varchar(255)
|
|
|
password varchar(255)
|
|
|
role varchar(255)
|
|
|
cod_coop bigint [not null]
|
|
|
}
|
|
|
|
|
|
Ref: "annual_result"."id_coop" > "cooperative"."id_coop"
|
|
|
Ref: "cooperative"."id_coop" < "cooperative_product"."id_coop"
|
|
|
Ref: "product"."id_prod" < "cooperative_product"."id_prod"
|
|
|
Ref: "category"."id_category" < "product"."id_category"
|
|
|
Ref: "cooperative"."cod_coop" < "user"."cod_coop"
|
|
|
``` |