none
ayuda en mi base de datos porfa (soy nuevo :c) RRS feed

  • Pregunta

  • hola soy nuevo en esto, pero necesito ayuda en mi base de datos, el ejercicio es el siguiente:

    Crear una aplicación en visual studio utilizando el lenguaje de programación c#, Windows form, entity framework, la aplicación debe ser un mantenedor de productos, por lo que debe crear una base de datos con 2 tablas: Encargados y Productos.

    Los encargados deben tener como mínimo id, nombre de usuario, nombre, apellido y contraseña.

    Los productos deben tener como mínimo id, nombre, marca, precio, stock y el id del encargado que lo registro como clave foránea.

    Y esto es lo que tengo:

    CREATE TABLE [dbo].[producto] (
        [idP]     VARCHAR (3)  NOT NULL,
        [nombre] VARCHAR (15) NOT NULL,
        [marca]  VARCHAR (15) NOT NULL,
        [precio] INT          NOT NULL,
        [stock]  VARCHAR (9)  NOT NULL,
        PRIMARY KEY CLUSTERED ([idP] ASC),
        FOREIGN KEY ([idP]) REFERENCES [dbo].[encargado] ([idE])
    );


    CREATE TABLE [dbo].[encargado] (
        [idE]            VARCHAR (3)  NOT NULL,
        [nombreusuario] VARCHAR (15) NOT NULL,
        [nombre]        VARCHAR (15) NOT NULL,
        [apellido]      VARCHAR (15) NOT NULL,
        [contraseña]    VARCHAR (10) NOT NULL,
        PRIMARY KEY CLUSTERED ([idE] ASC)
    );

    creo que la foránea esta mal hecha pero no se como arreglarla (se que es muy simple pero no se hacerla)

    jueves, 23 de julio de 2020 3:18

Todas las respuestas

  • Lo que te falta es que la clave foránea la has escrito "suelta", sin asociarla a un campo de la propia tabla. Tiene que ir "conectada" a un campo que exista en la tabla que la contiene:

    CREATE TABLE [dbo].[producto] (
         [idP]     VARCHAR (3)  NOT NULL,
         [nombre] VARCHAR (15) NOT NULL,
         [marca]  VARCHAR (15) NOT NULL,
         [precio] INT          NOT NULL,
         [stock]  VARCHAR (9)  NOT NULL,
         [idE] INT NOT NULL,
         PRIMARY KEY CLUSTERED ([idP] ASC),
         CONSTRAINT Fk_encargado FOREIGN KEY ([idE]) REFERENCES Sales.SalesReason (SalesReasonID)
     );

    Esto se puede escribir de varias formas, por ejemplo, puedes escribir el constraint directamente a continuación del campo en lugar de añadirlo al final de la instrucción, pero lo importante es que el [idE] tiene que estar declarado como campo en esta tabla. No es forzoso que se llame igual que el campo al que apunta el foreign key en la otra tabla, pero suele ser cómodo emplear el mismo nombre para reconocer de un vistazo a qué se refiere.

    jueves, 23 de julio de 2020 5:18
  • Hola CyberSparky, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Eric Ruiz

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    jueves, 23 de julio de 2020 12:56
    Moderador