none
Criando banco de dados SQL Server RRS feed

  • Pergunta

  • Srs. boa tarde,
     
    Preciso de uma ajudinha, criei a estrutura conforme o arquivo anexado Explosao_Armario.TXT, tenho duvida quando na criacao da CHAVE ESTRANGEIRA, na tabela EXPLPRO tenho a coluna CDITEMACABADO e PRODUTO_CDITEMACABADO, é isso mesmo os dados ficam redundantes na tabela.

    CREATE TABLE [PRODUTO] (
     [CDITEMACABADO] [VARCHAR] (20) NOT NULL,
     [NMITEMACABADO] [VARCHAR] (255),
     [TABELAPRECO_CDITEMPRECO] [VARCHAR] (20) NOT NULL,
     CONSTRAINT [PK_PRODUTO] PRIMARY KEY CLUSTERED
     (
       [CDITEMACABADO]
     ) ON [PRIMARY],
       CONSTRAINT [FK_TABELAPRECO_CDITEMPRECO] FOREIGN KEY
     (
       [TABELAPRECO_CDITEMPRECO]
     )
       REFERENCES [TABELAPRECO]
     (
       [CDITEMPRECO]
     )
    ) ON [PRIMARY]
    GO

    CREATE TABLE [EXPLPROD] (
     [CDITEMACABADO] [VARCHAR] (20) NOT NULL,
     [CDPECA] [VARCHAR] (20),
     [QTPECA] [INT],
     [PRODUTO_CDITEMACABADO] [VARCHAR] (20) NOT NULL,
     CONSTRAINT [PK_EXPLPROD_PECA] PRIMARY KEY CLUSTERED
     (
       [CDITEMACABADO], [CDPECA]
     ) ON [PRIMARY],
       CONSTRAINT [FK_PRODUTO_CDITEMACABADO] FOREIGN KEY
     (
       [PRODUTO_CDITEMACABADO]
     )
       REFERENCES [PRODUTO]
     (
       [CDITEMACABADO]
     )
    ) ON [PRIMARY]
    GO

    CREATE TABLE [PECA] (
     [CDPECA] [VARCHAR] (20) NOT NULL,
     [NMPECA] [VARCHAR] (45),
     CONSTRAINT [PK_PECA] PRIMARY KEY CLUSTERED
     (
       [CDPECA]
     ) ON [PRIMARY]
    ) ON [PRIMARY]
    GO

    CREATE TABLE [EXPLPECA] (
     [CDPECA] [VARCHAR] (20) NOT NULL,
     [CDMATPRIMA] [VARCHAR] (20),
     [QTPECA] [INT],
     [PECA_CDPECA] [VARCHAR] (20) NOT NULL,
     [MATERIA_CDMATPRIMA] [VARCHAR] (20) NOT NULL,
     CONSTRAINT [PK_EXPLPECA] PRIMARY KEY CLUSTERED
     (
       [CDPECA]
     ) ON [PRIMARY],
       CONSTRAINT [FK_PECA_CDPECA] FOREIGN KEY
     (
       [PECA_CDPECA]
     )
       REFERENCES [PECA]
     (
       [CDPECA]
     ),
       CONSTRAINT [FK_MATERIA_CDMATPRIMA] FOREIGN KEY
     (
       [MATERIA_CDMATPRIMA]
     )
       REFERENCES [MATERIA]
     (
       [CDMATPRIMA]
     )
    ) ON [PRIMARY]
    GO

    CREATE TABLE [MATERIA] (
     [CDMATPRIMA] [VARCHAR] (20) NOT NULL,
     [NMMATPRIMA] [VARCHAR] (45),
     [CDUNUSO] [VARCHAR] (3) NOT NULL,
     [CDUNCOMPRA] [VARCHAR] (3) NOT NULL,
     [QTESTOQUE] decimal(10,2),
     [QTMINESTOQUE]decimal(10,2),
     [UNIDADEUSO_CDUNUSO] [VARCHAR] (3) NOT NULL,
     CONSTRAINT [PK_MATERIA] PRIMARY KEY CLUSTERED
     (
       [CDMATPRIMA]
     ) ON [PRIMARY],
       CONSTRAINT [FK_UNIDADEUSO_CDUNUSO] FOREIGN KEY
     (
       [UNIDADEUSO_CDUNUSO]
     )
       REFERENCES [UNIDADEUSO]
     (
       [CDUNUSO]
     )
    ) ON [PRIMARY]
    GO

    EXPLOSAO DE PRODUTOS
    TABELAS
    PRODUTOS EXPLOSAODOPRODUTO PECA EXPLOSAODAPECA MATERIAPRIMA
    CDITEMACABADO NMITEMACABADO   CDITEMACABADO CDPECA QTPECA CDPECA NMPECA   CDPECA CDMATPRIMA QTPECA   CDMATPRIMA NMMATPRIMA
    AA565L0000202001 ARM ALTO ESTANTE 60X50X163 TP/MONT MAD ARG B.RETA B.AL AA565L0000202001 AA500 1,0000   AA500 KIT BASICO - ARM ALTO ESTANTE   AA500 1127116 12,0000   1127116 CAVILHA HELICOIDAL DE MADEIRA 8X30MM
    AA500 1127274 8,0000   1127274 PINO MINIFIX M6X42,5 MM
    AA500 1127276 8,0000   1127276 TAMBOR MINIFIX 15X12,5MM
    AA500 1127302 8,0000   1127302 TAMPA PLASTICA P/MINIFIX PRETA
    AA500 1128406 16,0000   1128406 SUPORTE PRATELEIRA 8X6 MARFIM
    AA500 1147087 6,0000   1147087 PARAF. FENDA 4,8X16 CAB. PANELA
    AA500 1260045 1,0000   1260045 ETIQUETA ADES 5,2X1CM DE IDENTIFICAO
    AA500 zFCNp 2,0000   zFCNp CANTONEIRA PLAN ZINCADO DE PRETO
    sABM6al 1,0000 sABM6al BASE METALICA P/ARMARIO 600 (580X480X60mm#18) PINT.ALUMINIO 
    mABA6a 1,0000 mABA6a BASE DE ARMARIO DE 600 GIRO (600X480X18mm) MAD ARG           mABA6a 1105066 0,2880 1105066 AGLOM. REVEST. ARGILA 18MM
    mABA6a 1108231 1,2240 1108231 FITA PSAI ARGILA 23X2,5MM
    mABA6a 1280064 0,9792 1280064 FITA PSAI ARGILA 23X1,0MM
    mABA6a 1170055 4,0000 1170055 BUCHA AMERICANA ZAMAK M6X13

    Em anexo tambem a formacao da explosao do item.
     
    Grato.
     
    []s

    segunda-feira, 11 de abril de 2011 20:28

Todas as Respostas

  • Boa tarde Wagner,

     

    Desculpe, mas pode explicar melhor a sua dúvida?

     

    []'s


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */
    terça-feira, 12 de abril de 2011 16:35
  • Wagner,

    O que você esta querendo fazer?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quarta-feira, 13 de abril de 2011 18:24
  • Wagner,

    tem dados redundantes mesmo.

    agora tem varias soluções pra isso. exemplo se tu quiser gravar esse dado como primary key na tabela EXPLPROD você pode criar um trigger na tabela PRODUTO. que quando grava os dados na tabela PRODUTO, trigger vai criar esse mesmo dado na tabela EXPLPROD.

     mas tente esclarecer mais a sua dúvida .

     

    Att,

    Midana


    Midana Fernandes Sana Fortaleza - CE Brasil
    • Sugerido como Resposta Midana Sana terça-feira, 4 de outubro de 2011 14:44
    quarta-feira, 20 de abril de 2011 16:40
  • Midana,

    Concordo com a sua sugestão, eu particularmente gosto de utilizar triggers para este tipo de situação, a única ressalva que temos que destacar é em relação a possíveis problemas de performance quando trabalhamos com triggers, pois estamos forçando o SQL Server a realizar mais uma transação de insert.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    segunda-feira, 25 de abril de 2011 18:23