Criando Tabelas E-Commerce (Parte I)

Ola pessoal. Hoje vamos fazer mais uma parte do nosso E-Commerce. Faremos a modelagem dos dados e criaremos algumas tabelas, para ver como a coisa funciona na prática. Boa sorte a todos e qualquer dúvida: thiago.desenv@gmail.com Vamos lá

Por | @oficinadanet Programação
Ola pessoal.
Hoje vamos fazer mais uma parte do nosso E-Commerce. Faremos a modelagem dos dados e criaremos algumas tabelas, para ver como a coisa funciona na prática.
Boa sorte a todos e qualquer dúvida: thiago.desenv@gmail.com
Vamos lá

Imagina a seguinte situação:
Você precisa desenvolver uma loja virtual para um  cliente que possui uma empresa que manterá esse produto  no caso o e-commerce.
O nosso sistema fará o cadastro dos produtos a serem vendidos, o faturamento, a emissão de notas, o controle de estoque, controlar compras de novos itens. Assim podendo reabastecer a Loja virtual. Imagine que quem fará o serviço são departamentos diferentes certo?
O script abaixo é a criação de nossas tabelas:

--Tabela q cadastra a empresa dona da loja virtual
create  table Empresa
(
IdEmpresa tinyint primary key identity,
cnpj9 int ,
cnpj4 int null default 0,
cnpj2 int ,
razaoSocial varchar(50),
nomeFantasia varchar(30)
)


O porquê de criarmos os campos cnpj9, cnpj4 e cnpj2. Sabemos que o CNPJ de uma empresa e composta por 14 dígitos neste formato: 02216301-0001-82, sendo que cada seqüência de dígitos divididos por hífens seriam guardada nos campos citados anteriormente (cnpj9, cnpj4 e cnpj2). E se tivéssemos os mesmo campos em uma tabela de cliente? O cliente pode ser pessoa física ou jurídica! Por isso fiz a declaração default 0 na coluna cnjp4.
Caso o cliente seja pessoa física o campo cnpj4 pode ser omitido na hora da inclusão e ele guardará 0 por padrão, exemplo:
Formato do CPF 231.456.238-98, você poderia guardar a primeira seqüência de números no campo cnpj9, omitiria o cnpj4 e os dígitos guardaria no cnpj2.

Aqui criei a tabela de departamentos com uma chave estrangeira para a tabela empresa, para mostrar que em 1 empresa você pode ter vários departamentos. Esse campo foi criado do tipo tinyint porque não ocupa muito espaço no banco, creio que nenhuma empresa terá mais de 255 Departamentos.

--Cria a tabela de Departamentos existentes na empresa
create  table DptoEmpresa
(
IdDepto tinyint primary key identity,
Descricao varchar(30) not null,
dataCadastro datetime,
QtdeUsuario tinyint,
EmpresaId tinyint
)


E finalmente abaixo criamos a tabela de usuários que se relaciona com a tabela de departamentos.
--usuarios do nosso sistema
CREATE TABLE Usuarios (
  IdUsuario INT PRIMARY KEY IDENTITY,
  Login CHAR(10)NOT NULL,
  Senha CHAR(10)NOT NULL,
  DataCadastro datetime,
  Email varchar(30),
  EmailAlternativo varchar(30),
  IpUsuario char(15),
  DptoEmpresaId tinyint
)


Criando os relacionamentos

--Constraint que referencia a chave estrangeira entre Empresa e DptoEmpresa
ALTER  TABLE DptoEmpresa
ADD CONSTRAINT fkDeptosEmpresa FOREIGN KEY (EmpresaId)REFERENCES dbo.Empresa(IdEmpresa)


--Constraint que referencia a chave estrangeira entre usuarios e DptoEmpresa
ALTER TABLE Usuarios
ADD CONSTRAINT fkUsuariosDpto FOREIGN KEY (DptoEmpresaId)REFERENCES dbo.DptoEmpresa(IdDepto)


Inserindo Dados
--Tabela Empresa
insert into Empresa(cnpj9, cnpj4, cnpj2,razaoSocial,nomeFantasia )
values(02216301, 0001, 61, 'THIAGO LTDA', 'THIAGO')


--Departamentos
insert into DptoEmpresa(descricao,dataCadastro,QtdeUsuario,EmpresaId)
values ('VENDAS',getDate(), 3,1)


--Usuarios
insert into Usuarios (Login, Senha,DataCadastro,Email, IpUsuario,DptoEmpresaId)
values('ADMIN','ADMIN',getDate(),'thiago.desenv@gmail.com','192.168.0.2', 1)


Resumindo o Diagrama
O conceito de MER é fundamental para a criação de tabelas em um banco de dados, abaixo o modelo nos diz que:
Uma empresa tem várias departamentos, e nesse departamento existem várias pessoas.

Criando Tabelas E-Commerce (Parte I)

Mais sobre: e-commerce, sql server
Share Tweet
DESTAQUESRecomendado
Mais compartilhados
Comentários