Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cassiano óliver

Modelagem sistema de atendimento online

Recommended Posts

Olá pessoal,

 

Estou iniciando o desenvolvimento de um sistema para atendimento online, abaixo estão as estruturas das tabelas, gostaria de opiniões para melhorias.

 

CREATE TABLE `atendon_admins` (
 `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
 `nome` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
 `email` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
 `grupoID` tinyint(3) unsigned DEFAULT NULL,
 `dataCadastro` date DEFAULT NULL,
 `adminID` tinyint(3) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

CREATE TABLE `atendon_atendimentos` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `operadorID` tinyint(4) unsigned DEFAULT NULL,
 `clienteID` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
 `assunto` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
 `dataInicio` datetime DEFAULT NULL,
 `dataFim` datetime DEFAULT NULL,
 `status` enum('0','2','1') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '2 -> Ag. Atend., 1 -> Aberto, 0 -> Fechado',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

CREATE TABLE `atendon_atendimentos_mensagens` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `atendimentoID` int(10) unsigned DEFAULT NULL,
 `mensagem` text COLLATE utf8_unicode_ci,
 `para` enum('0','1') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '0 -> Cliente, 1 -> Operador',
 `data` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

CREATE TABLE `atendon_clientes` (
 `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
 `nome` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
 `email` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
 `dataCadastro` date DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

CREATE TABLE `atendon_grupos` (
 `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
 `nome` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
 `nivel` enum('0','1') COLLATE utf8_unicode_ci DEFAULT '0' COMMENT '0 -> Operador, 1 -> Administrador',
 `dataCadastro` date DEFAULT NULL,
 `adminID` tinyint(3) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

CREATE TABLE `atendon_operadores` (
 `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
 `nome` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
 `email` varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
 `foto` char(36) COLLATE utf8_unicode_ci DEFAULT NULL,
 `grupoID` tinyint(3) unsigned DEFAULT NULL,
 `status` enum('0','3','2','1') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '0 -> offline, 1 -> online, 2 -> ocupado, 3 -> ausente',
 `dataCadastro` date DEFAULT NULL,
 `adminID` tinyint(3) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, manda a sua modelagem, não os create table! --'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem-se pelo equívoco.

 

Segue:

 

Modelagem-Atendimento-online.png

 

Basicamente, a lógica é esta:

 

* O cliente / visitante ao preencher o formulário para atendimento, é cadastrado no banco (atendon_clientes).

* A solicitação é registrada (atendon_atendimentos), por padrão, o atendimento é definido como "Aguard. atendimento".

* Um operador (atendon_operadores) disponível atende a solicitação e seu status é atualizado "ocupado", o atendimento é atualizado para "Em atendimento".

* As mensagens enviadas vão para atendon_mensagens, onde indicam para quem é destinada "cliente" ou "operador".

* Após o atendimento, os status do Operador e atendimento são alterados para "disponível" e "Fechado" respectivamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.