Welcome to Sign in | Help

Re: Creare DB

  •  06-29-2007, 10:04 AM

    Re: Creare DB

    Tabelele ar putea fi structurate astfel:

    CREATE TABLE Clienti (
        CodClient int IDENTITY PRIMARY KEY,
        NumeClient varchar(50) NOT NULL UNIQUE
    )

    CREATE TABLE SediiClienti (
        CodSediu int IDENTITY PRIMARY KEY,
        CodClient int NOT NULL REFERENCES Clienti,
        Localitate varchar(30) NOT NULL, -- eventual poate exista o tabelă cu localităţi, una cu ţări, etc
        Adresa varchar(100) NULL,
        UNIQUE (CodClient, Localitate, Adresa)
    )

    CREATE TABLE Telefoane (
        CodSediu int NOT NULL REFERENCES SediiClienti,
        Telefon varchar(20) NOT NULL,
        Observatii varchar(50) NULL, -- se poate mentiona daca e mobil/fix/fax, cine raspunde, intre ce ore, etc
        PRIMARY KEY (CodSediu, Telefon)
    )

    CREATE TABLE PersoaneDeContact (
        CodSediu int NOT NULL REFERENCES SediiClienti,
        NumeSiPrenume varchar(30) NOT NULL, -- eventual pot fi doua coloane (Nume şi Prenume), dacă e necesar la ceva
        Functie varchar(50) NULL,
        PRIMARY KEY (CodSediu, NumeSiPrenume)
    )

    Pentru a obţine lista sediilor care au mai multe numere de telefon putem folosi:

    SELECT * FROM SediiClienti WHERE CodSediu IN (
      SELECT CodSediu FROM Telefoane GROUP BY CodSediu HAVING COUNT(*)>1
    )

    Răzvan

     

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems