-
Notifications
You must be signed in to change notification settings - Fork 0
/
model.txt
177 lines (143 loc) · 7.21 KB
/
model.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
Modelo atual:
- Journal
* Chave: jid
- Issue
* Chave: iid
* Chave para o Journal: journal_jid (issue conhece o journal
utilizando o journal_iid)
- Article
* Chave: aid
* Chave para o Issue: issue_iid (article conhece o issue utilizando
o issue_iid)
* Chave para o Journal: journal_jid (article conhece o journal
utilizando o journal_jid)
+++++++
+ J + Key: jid
----+ O +
| + R +
| + N +
| + A +
| + L +
| +++++++
| |
J | | journal_jid
O | |
R | +++++++
N | + I + Key: iid
A | + S + Relation Key: journal_jid
L | + S +
_ | + U +
J | + E +
I | +++++++
D | |
| | issue_iid
| |
| +++++++
| + A + Key: aid
| + R + Relation Key: issue_iid
| + T + Relation Key: journal_jid
----+ I +
+ C +
+ L +
+ E +
+++++++
Protosta para atender ao site garantido que seja relizado apenas uma requisição
para o ElasticSearch:
- Analizando as funções de visão do protótipo...temos a seguintes conclusões:
Para a maioria das páginas as informações do periódico é obrigatório.
* Lista alfabética (collection_list_alpha) OK
N requisição para o ES (get_journals_by_collection_alpha)
A função de controle get_journals_by_collection_alpha precisa
para cada periódico buscar o último fascículo,portanto é justificável
para atender ao requisito de uma requisição por página que o último
fascículo seja adicionado à entidade Journal.
* Lista de periódico por tema (collection_list_theme) OK
N requisição para o ES (get_journals_by_collection_theme)
A função de controle get_journals_by_collection_theme precisa para
cada períodico buscar o último fascículo, portanto é justificável
para atender ao requisito de uma requisição por página que o último
fascículo seja adicionado à entidade Journal.
* Lista de periódico por instituição (collection_list_institution) OK
N requisição para o ES (get_journals_by_collection_institution)
A função de controle get_journals_by_collection_institution precisa
para cada períodico buscar o último fascículo, portanto é justificável
para atender ao requisito de uma requisição por página que o último
fascículo seja adicionado à entidade Journal.
* Página do periódico
2 requisições para o ES (journal_detail)
Dentro da view é necessário retorna o perióico e o último fascículo.
Mas uma justificativa para colocarmos o último fascículo na
entidade Journal
* Página do artigo
2 requisições para o ES (article_detail)
Nessa página é necessário acesso ao periódico e artigo
* Resumo do artigo
2 requisições para o ES (abstract_detail)
Nessa página é necessário acesso ao periódico e artigo
--------------------------------------------------------------------------------
* Grade de fascículo
2 requisições para o ES (issue_grid)
Dentro da view é necessário retornar o periódico e todos os
fascículos de um periódico, essa necessidade existe apenas para
retornar o histórico da revista na grade de fascículo.
Não sei como resolver esse item precisamos pensar em uma solução.
* Table of Contents (toc)
3 requisições para o ES
Nessa página é necessário recuperar todas as entidades,
é necessário dados do periódico, do fascículo e dos artigos :-().
--------------------------------------------------------------------------------
No modelo anterior não existia qualquer otimização no modelo considerando
as páginas do site, realizamos um trabalho de otmização do modelo.
Modelo otimizado para o Site:
- Journal
* Chave: jid
* Last_issue: alguns atributos do último fascículo
- Issue
* Chave: iid
* Chave para o Journal: journal_jid (issue conhece o journal
utilizando o journal_iid)
- Article
* Chave: aid
* Chave para o Issue: issue_iid (article conhece o issue utilizando
o issue_iid)
* Chave para o Journal: journal_jid (article conhece o journal
utilizando o journal_jid)
* Journal: Alguns atributos do Journal
* Issue: Alguns atributos do Issue
+++++++
+ J + Key: jid
----+ O + issue_count
| + R + last_issue: year, volume, number,
| + N + label, sections, iid,
| + A + start_month, end_month,
| + L + cover_url, bibliographic_legend
| +++++++
| |
J | | journal_jid
O | |
R | +++++++
N | + I + Key: iid
A | + S + Relation Key: journal_jid
L | + S +
_ | + U +
J | + E +
I | +++++++
D | |
| | issue_iid
| |
| +++++++
| + A + Key: aid
| + R + Relation Key: issue_iid
| + T + Relation Key: journal_jid
----+ I +
+ C + journal: title, publisher_name,
+ L + print_issn, scielo_issn,
+ E + eletronic_issn, study_areas
+++++++
issue: year, volume, number
* OBS.: Ainda é preciso especificar melhor a modelagem para as seções, ainda não
temos uma definição clara de como iremos trabalhar com as seções.
Como podemos repara ainda estamos com duas páginas do site realizando 2 ou mais
requisições para o ElasticSearch, resolvemos ignorar essas páginas considerando
que a quantidade de requisições para essas páginas é pequena.
A página do artigo que é a mais importante do site realiza apenas uma requisição.