Fórum Duvidas com Banco de Dados e SQL #57884
13/02/2007
0
Eu sou novo com programação, principalmente com BD e SQL, e tenho algumas duvidas.
1º: Qual a melhor interface de BD para se trabalhar que fornece o maior numero de conexão de usuários? Estou trabalhando com Interbase, mas eu li que ele só aceita 20 usuários conectados.
2º: Estou criando um sistema, onde está integrado td, administração, caixa, finança, gerencia, estoque. A minha duvida que surgiu no momento, é o seguinte. Eu tenho algumas tabelas com a seguinte estrutura:
Create Table "Bebidas" (
"bbdCodigo" Integer NOT NULL,
"bbdNome" Char(20) NOT NULL,
"bbdPreco" Decimal(4,2) NOT NULL,
Primary Key ("bbdCodigo","bbdNome","bbdPreco")
);
Create Table "Alimentos" (
"almCodigo" Integer NOT NULL,
"almNome" Char(20) NOT NULL,
"almDescricao" Char(80),
"almPreco" Decimal(4,2) NOT NULL,
Primary Key ("almCodigo","almNome","almPreco")
);
Create Table "Cozinha" (
"almCodigo" Integer NOT NULL,
"almNome" Char(20) NOT NULL,
"almPreco" Decimal(4,2) NOT NULL,
Primary Key ("almCodigo","almNome","almPreco")
);
Create Table "Bar" (
"bbdCodigo" Integer NOT NULL,
"bbdNome" Char(20) NOT NULL,
"bbdPreco" Decimal(4,2) NOT NULL,
Primary Key ("bbdCodigo","bbdNome","bbdPreco")
);
Create Table "Caixa" (
"caiCodigo" Integer NOT NULL,
"caiMesa" Decimal(3,0),
"caiPrSubTotal" Decimal(5,2),
"caiNumPessoa" Decimal(5,0),
"caiPrPessoa" Decimal(5,2),
"bbdCodigo" Integer NOT NULL,
"bbdNome" Char(20) NOT NULL,
"almCodigo" Integer NOT NULL,
"almNome" Char(20) NOT NULL,
"bbdPreco" Decimal(4,2) NOT NULL,
"almPreco" Decimal(4,2) NOT NULL,
"caiQtdade" Integer,
Primary Key ("caiCodigo","bbdCodigo","bbdNome","almCodigo","almNome","bbdPreco","almPreco")
);
Alter Table "Bar" add Foreign Key ("bbdCodigo","bbdNome","bbdPreco") references "Bebidas" ("bbdCodigo","bbdNome","bbdPreco") on update no action on delete no action;
Alter Table "Caixa" add Foreign Key ("bbdCodigo","bbdNome","bbdPreco") references "Bebidas" ("bbdCodigo","bbdNome","bbdPreco") on update no action on delete no action;
Alter Table "Cozinha" add Foreign Key ("almCodigo","almNome","almPreco") references "Alimentos" ("almCodigo","almNome","almPreco") on update no action on delete no action;
Alter Table "Caixa" add Foreign Key ("almCodigo","almNome","almPreco") references "Alimentos" ("almCodigo","almNome","almPreco") on update no action on delete no action;está certo a forma que foi criada a tabela caixa? pois preciso pegar os dados das outras tabelas para que esteja mostrando o que foi utilizado por cada mesa.
3º: como faço para que os pedidos apareçam como uma nota fiscal na própria tela? Utilizo uma listbox? Como faço para que ela insira o código do produto, nome e preço na mesma linha?
4º: em um outro sistema parecido com este, vou preciso que as vezes os pedidos e os preços sejam incluidos em uma conta, e a preço total anterior seja atualizado com a inclusão dos novos produtos.
Agradeço se alguem puder me ajudar, mesmo que seja somente em algumas duvidas.
Eduardo
Edusjc
Curtir tópico
+ 0Posts
13/02/2007
Marcosrocha
Porém li sua SQL e acho que você vai ter que dar uma lida em tutoriais de SQL... Por que sua ligação tá parecendo Paradox... muito complicada de ser utilizada... Por favor, não me leve a mal...
Dá uma olhada no [url=http://www.apostilando.com/sessao.php?cod=18]Apostilando.com[/url] a procura de apostilas de SQL...
Gostei + 0
13/02/2007
Edusjc
Na verdade eu utilizo o software Toad Data Modeler para criar o MER do BD, e ele que gera este código.
Gostei + 0
13/02/2007
Marcosrocha
Uma saída simples que eu uso aqui seria você criar um cadastro de produtos com classificação (1-´Bebidas´,2-´Alimentos´) e no ligar ao Caixa mediante o código do produto...
CREATE TABLE PRODUTOS ( PRO_CODIGO INTEGER NOT NULL, PRO_DESCRICAO VARCHAR(100) CHARACTER SET WIN1252 COLLATE WIN_PTBR, PRO_VLVENDA DECIMAL(15,2), PRO_TIPO SMALLINT, -- 1 BEBIDAS 2 ALIMENTOS 3 COZINHA 4 BAR PRIMARY KEY (PRO_CODIGO)); CREATE TABLE VENDA ( VEN_CODIGO INTEGER NOT NULL, VEN_DATA DATE, CLI_CODIGO INTEGER, VEN_VLBRUTO DECIMAL(15,2), VEN_DESCONTO DECIMAL(15,2), VEN_VLLIQUIDO DECIMAL(15,2), PRIMARY KEY (VEN_CODIGO)); CREATE TABLE VENDAPRODUTO ( VEN_CODIGO INTEGER NOT NULL, VPR_CODIGO INTEGER NOT NULL, PRO_CODIGO INTEGER, VPR_QTDE INTEGER, VPR_VLUNIT DECIMAL(15,2), VPR_VLTOTAL DECIMAL(15,2), PRIMARY KEY (VEN_CODIGO, VPR_CODIGO, PRO_CODIGO)); CREATE TABLE CAIXA ( CAI_CODIGO INTEGER NOT NULL, CAI_DATA DATE, CAI_VALOR DECIMAL(15,2), CAI_OPERADOR VARCHAR(50) CHARACTER SET WIN1252 COLLATE WIN_PTBR, VEN_CODIGO INTEGER, PRIMARY KEY (CAI_CODIGO));
Acho que dá pra saber os campos de ligação aí... Claro que a forma que trabalho talvez não seja mais apropriada a sua aplicação, pois não trabalho com DBEdits e DBGrids como a maioria de programadores que conheço, mas essa estrutura do DB nunca me deixou na mão... Pois dessa forma, eu controle as Vendas separadamente do Caixa...
Gostei + 0
13/02/2007
Edusjc
Acho que entendi o seu código, exceto por uma coisa, onde é que está a ligação da tabela de venda com o caixa?
Existe alguma apostila de tutorial de como utilizar o firebird??
Gostei + 0
14/02/2007
Callegaro
Gostei + 0
14/02/2007
Marcosrocha
Gostei + 0
14/02/2007
Callegaro
Gostei + 0
14/02/2007
Marcosrocha
Pra mim o IBExpert se relaciona bem com o FB... na verdade tudo que eu sei de SQL foi aprendendo aqui e ´apanhando´ procurando na net... Quanto aos relatórios de performance, dicas de índices, etc... Sempre dá pra se ter uma idéia de onde melhorar... afinal... o índice é criado com base no ´Where´ da sua SQL... Acho que eu tenho bastante conhecimento nesses conceitos... Conclusão: Pra mim, por enquanto, eu prefiro o FB. Mas concordo 100¬ que o Oracle é o melhor, tendo em vista que a Petrobrás usa ele...
Gostei + 0
14/02/2007
Edusjc
Mcblade, tem uma coisa que não da certo no código que vc me enviou na seguinte estrutura:
CREATE TABLE PRODUTOS ( PRO_CODIGO INTEGER NOT NULL, PRO_DESCRICAO VARCHAR(100) CHARACTER SET WIN1252 COLLATE WIN_PTBR, PRO_VLVENDA DECIMAL(15,2), PRO_TIPO SMALLINT, -- 1 BEBIDAS 2 ALIMENTOS 3 COZINHA 4 BAR PRIMARY KEY (PRO_CODIGO));
Nesta tabela, vc colocou um campo com tipo, ou seja, 1 para bebidas, 2 para alimentos, etc. mas para mim não funciona pq quando eu criei uma tabela Cozinha e Bar, elas seriam em branco, pois o bar vai apenas receber as bebidas selecionado pelo cliente e será impresso em uma impressora tipo ECF, e a cozinha a mesma coisa, vai receber os pedidos que contém na tabelas Alimentos e vai imprimir (ou até mesmo visualizar em uma tela) os pedidos dos clientes na ECF para que seja efetuado os serviços, mas ao mesmo tempo, eles também vão ficar armazenados em no registro do caixa
Gostei + 0
15/02/2007
Marcosrocha
Mas essa estrutura é usada por mim para que seja possivel, numa compra ou venda, que o cliente possa selecionar vários produtos e também para que fique fácil a busca e controle das mesmas...
Gostei + 0
18/04/2007
Edusjc
mcblade, estou com duvida em algumas coisas..
no caso a tabela CAIXA seria utilizado apenas para registro histórico das vendas?? E durante a venda, eu utilizaria qual tabela, a VENDA ou a VENDAPRODUTO? Como eu faria para efetuar a venda de um produto ´X´? Como seria o código?
Desculpa por tanta pergunta básica, mas é que sou novo na parte de programação de banco de dados.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)