Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it L'avatar di ertele
    Registrato dal
    Mar 2008
    Messaggi
    14

    Problemi con la creazione di tabelle in mysql e dei vincoli tra esse

    Ciao a tutti,
    come progettino universitario-didattico, sto creadno un sito di annunci. Uso PHP e MySQL.
    Sto creando il DB e piuttosto che farlo a mano mi sto aiutando con la suite MySQL Workbech 5.0 (scaricabile dal sito di mysql).

    Allora..la situazione è la seguente.
    Io ho una tabella "users" contenete tutti gli utenti con le loro informazioni (quindi username, password, email, ecc), poi ho una tabella "announcements" che dovrebbe contenere tutti gli annunci (dato che non ho ancora deciso quali sono tutti i capi da creare, per ora contiene solo il campo "ID" e il campo "creationDate", ma comunque questi 2 dovrebbero bastaro per creare tutte le relazioni di cui ho bisgono), infine c'è la tabella "images" (anche questa con i campi "ID", "creationDate" e "imageName")...A questo punto devo creare le relazioni tra le tabelle, quindi ho creato altre 2 tabelle: una che collega "users" e "announcememts" che ho chiamato "users_announcements" e l'altra che collega "announcements" e "images", chiamata "announcements_images"..
    Dalla suite mysql Workbench ho creato i vari legami tra le tabella e questo è il codice sql che mi ha salvato la suite (codice che pero non funziona, ho provato con SQLYog ad eseguirlo, pero ad un certo punto mi da qualche errore di sintassi che non capisco) HELPPPPPPPPP :


    SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
    SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

    CREATE SCHEMA IF NOT EXISTS `appartamentistudenteschi` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
    SHOW WARNINGS;appartamentistudenteschi
    USE `appartamentistudenteschi`;

    -- -----------------------------------------------------
    -- Table `appartamentistudenteschi`.`users`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `appartamentistudenteschi`.`users` ;

    SHOW WARNINGS;
    CREATE TABLE IF NOT EXISTS `appartamentistudenteschi`.`users` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
    `creationDate` DATETIME NOT NULL ,
    `username` VARCHAR(45) NOT NULL ,
    `password` VARCHAR(45) NOT NULL ,
    `mail` VARCHAR(100) NOT NULL ,
    PRIMARY KEY (`id`) ,
    CONSTRAINT `fk_user`
    FOREIGN KEY ()
    REFERENCES `appartamentistudenteschi`.`users` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

    SHOW WARNINGS;
    CREATE INDEX `fk_user` ON `appartamentistudenteschi`.`users` () ;

    SHOW WARNINGS;

    -- -----------------------------------------------------
    -- Table `appartamentistudenteschi`.`images`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `appartamentistudenteschi`.`images` ;

    SHOW WARNINGS;
    CREATE TABLE IF NOT EXISTS `appartamentistudenteschi`.`images` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
    `creationDate` DATETIME NOT NULL ,
    `imageName` VARCHAR(55) NOT NULL ,
    PRIMARY KEY (`id`) )
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

    SHOW WARNINGS;

    -- -----------------------------------------------------
    -- Table `appartamentistudenteschi`.`announcements`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `appartamentistudenteschi`.`announcements` ;

    SHOW WARNINGS;
    CREATE TABLE IF NOT EXISTS `appartamentistudenteschi`.`announcements` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
    `creationDate` DATETIME NOT NULL ,
    PRIMARY KEY (`id`) )
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

    SHOW WARNINGS;

    -- -----------------------------------------------------
    -- Table `appartamentistudenteschi`.`announcements_images`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `appartamentistudenteschi`.`announcements_images` ;

    SHOW WARNINGS;
    CREATE TABLE IF NOT EXISTS `appartamentistudenteschi`.`announcements_images` (
    `idAnnouncement` INT UNSIGNED NOT NULL ,
    `idImage` INT UNSIGNED NOT NULL ,
    CONSTRAINT `fk_announcement1`
    FOREIGN KEY (`idAnnouncement` )
    REFERENCES `appartamentistudenteschi`.`announcements` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
    CONSTRAINT `fk_image`
    FOREIGN KEY (`idImage` )
    REFERENCES `appartamentistudenteschi`.`images` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

    SHOW WARNINGS;
    CREATE INDEX `fk_announcement1` ON `appartamentistudenteschi`.`announcements_images` (`idAnnouncement` ASC) ;

    SHOW WARNINGS;
    CREATE INDEX `fk_image` ON `appartamentistudenteschi`.`announcements_images` (`idImage` ASC) ;

    SHOW WARNINGS;

    -- -----------------------------------------------------
    -- Table `appartamentistudenteschi`.`users_announcements`
    -- -----------------------------------------------------
    DROP TABLE IF EXISTS `appartamentistudenteschi`.`users_announcements` ;

    SHOW WARNINGS;
    CREATE TABLE IF NOT EXISTS `appartamentistudenteschi`.`users_announcements` (
    `idUser` INT UNSIGNED NOT NULL ,
    `idAnnouncement` INT UNSIGNED NOT NULL ,
    CONSTRAINT `fk_user`
    FOREIGN KEY (`idUser` )
    REFERENCES `appartamentistudenteschi`.`users` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
    CONSTRAINT `fk_announcemet`
    FOREIGN KEY (`idAnnouncement` )
    REFERENCES `appartamentistudenteschi`.`announcements` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
    ENGINE = InnoDB
    DEFAULT CHARACTER SET = latin1
    COLLATE = latin1_swedish_ci;

    SHOW WARNINGS;
    CREATE INDEX `fk_user` ON `appartamentistudenteschi`.`users_announcements` (`idUser` ASC) ;

    SHOW WARNINGS;
    CREATE INDEX `fk_announcemet` ON `appartamentistudenteschi`.`users_announcements` (`idAnnouncement` ASC) ;

    SHOW WARNINGS;


    SET SQL_MODE=@OLD_SQL_MODE;
    SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
    SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


    Vi ringrazio tutti..
    In allegato vi metto anche lo schema ER del DB
    Immagini allegate Immagini allegate
    tele

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.