Welcome to Sign in | Help
in Search

Creare DB

Last post 06-29-2007, 11:25 AM by Cypress. 6 replies.
Sort Posts: Previous Next
  •  06-28-2007, 3:29 PM 2161

    Creare DB

    Cam cum ar trebuie create tabelele unei baze ce trebuie sa contina:

    -lista de clienti

    -fiecare client mai multe sedii (cel putin unu), un sediu poate apartine numai unui client

    -fiecare sediu are mai multe numere de telefon.

    -fiecare sediu are mai multe persoane de contact.

    Nu stiu cum se rezolva chestia cu mai multe nr. de tel., mai multe peroane de contact...Va trebui ulterior sa pot face o selectie a sediilor cu mai multe nr. de telefon si aici ma infund.

     

    Best regards
     


     

  •  06-28-2007, 3:44 PM 2162 in reply to 2161

    Re: Creare DB

    Vezi http://www.tightlinecomputers.com/Downloads.htm

    - mai pe la "coada" gasesti un link catre prezentarea lui Andy Kramek "Designing a Database".

    Cred ca te poti inspira din "ERD for a simple contact management system"  

  •  06-28-2007, 6:05 PM 2163 in reply to 2162

    Re: Creare DB

    Pai problema e mai complicata in primuk rand ce sgbd folosesti ,baza aia de date o sa fie read intensive,write inensive o sa participe la replicari o sa faci olap-uri pe ea etc

     


    Secolul XXI ori va fi religios ori nu va fi deloc
  •  06-28-2007, 8:21 PM 2168 in reply to 2161

    Re: Creare DB

    tblClienti (CodClient, denumire,etc), tblSedii(CodSediu,Telefon1,Telefon2,adresa,etc) (daca sunt mai mult de 2 tel se poate sparge si crea

    tblTelefoaneSediu(CodSediu,NrTelefon))

    tblSediiClienti(CodSediu,CodClient, etc)

    tblContacteSediu(CodSediu,Nume,Prenume,etc)

     

    Relatia unu (tblClienti) la n (tblSediiClienti)

    Relatia unu (tblSedii) la n (tblContacteSediu)

     

     


    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
  •  06-29-2007, 9:49 AM 2171 in reply to 2168

    Re: Creare DB

    Multumesc ggciubuc...asta era ceea ce ma interesa...multumesc mult
  •  06-29-2007, 10:04 AM 2172 in reply to 2161

    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

     

  •  06-29-2007, 11:25 AM 2174 in reply to 2172

    Re: Creare DB

    Saru' mana Razvan
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems