Informações básicas
Este é o primeiro dia para mim com couchbase. Eu revisei os bancos de dados de amostra usando o console de banco de dados que vem com o couchbase. Especificamente, tenho brincado com o aplicativo "amostra de cerveja" para tentar entender como organizar meu banco de dados. Parece que eles têm dois tipos diferentes de documentos - cervejarias ou cervejas - e tudo está no mesmo balde.
Para a minha candidatura pessoal, disponho dos seguintes dados:
{
"server_details": {
"name": "testserver",
"dns_name": "testserver.mydomain.net",
"ipv4": "10.xx.xx.xx",
"ipv6": "",
"type": "webserver"
},
"server_status": {
"up_to_date": true
},
"packages": {
"package1": {
"current_version": "x.x",
"previous_version": "x.x",
"last_updated_on": "2016-03-16",
"play_id": "link to audit table"
},
"package2": {
"current_version": "x.x",
"previous_version": "x.x",
"last_updated_on": "2016-03-16",
"play_id": "link to audit table"
}
}
}
Eu tenho diferentes tipos de servidor, como servidor web, appserver, servidor dns etc. Portanto, estou planejando usar apenas o mesmo objeto json, mas alterar o campo "tipo".
Pergunta
Também preciso criar algum tipo de tabela de auditoria que mostre o histórico de quando um pacote em um servidor foi atualizado. Preciso rastrear coisas como:
- data de execução
- nome do script
- package1_version_b4_update
- package1_version_after_update
- server_dns_name
Este é o objeto json que criei para este tipo de documento:
{
"audit_details": {
"script_name": "upgrade_all_mrts",
"rt_ticket_number": "16123",
"execution_date": "2016-03-16",
"status": "success"
},
"affected_servers": {
"server1": {
"package1":{
"version_after_update": "x.x",
"version_before_update": "x.x",
"last_updated_on": "2016-03-16"
},
"package2": {
"version_after_update": "x.x",
"version_before_update": "x.x",
"last_updated_on": "2016-03-16"
}
},
"server2": {
"package1":{
"version_after_update": "x.x",
"version_before_update": "x.x",
"last_updated_on": "2016-03-16"
},
"package2": {
"version_after_update": "x.x",
"version_before_update": "x.x",
"last_updated_on": "2016-03-16"
}
}
}
}
Seria este apenas mais um documento com uma estrutura completamente diferente? ou devo colocá-lo em outro balde? Se tudo deve estar no mesmo balde, a estrutura do objeto json que estou propondo é apropriada? Fundamentalmente, acho que minha pergunta é: você despeja tudo em um balde como uma coleção de documentos variados... e apenas certifica-se de que os documentos relacionados tenham a mesma estrutura para que você possa consultá-los todos de uma vez?
Desculpe pelas perguntas corretivas, mas estou tentando construir um protótipo em tempo real ... enquanto leio os documentos. Qualquer dica seria apreciada.