/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Nøglenavne og tabelnavne.
Fra : Leif Neland


Dato : 02-10-09 10:26

Igen eksemplet med kunder, ordrer og ordrelinier.
Hvad er "best practice"?

Hedder egennøglen kun id og fremmednøglen concat(tabel,id)
kunder.id=ordrer.kundeid and ordrer.id=ordrelinier.ordreid

Eller det samme i alle tabeller?

kunder.kundeid=ordrer.kundeid and ordrer.ordreid=ordrelinier.ordreid

Og et tillægsspørgsmål: tabelnavne i ental eller flertal?
kunde,ordre,ordrelinie
kunder,ordrer,ordrelinier

Leif

 
 
Henrik Stidsen (02-10-2009)
Kommentar
Fra : Henrik Stidsen


Dato : 02-10-09 15:14

Leif Neland <leif@neland.dk> wrote in
news:4ac5c748$0$36577$edfadb0f@dtext01.news.tele.dk:

> Igen eksemplet med kunder, ordrer og ordrelinier.
> Hvad er "best practice"?

> Hedder egennøglen kun id og fremmednøglen concat(tabel,id)
> kunder.id=ordrer.kundeid and ordrer.id=ordrelinier.ordreid
> Eller det samme i alle tabeller?
> kunder.kundeid=ordrer.kundeid and ordrer.ordreid=ordrelinier.ordreid

Det kan du gøre som du vil, jeg vil vælge at bruge kunder.id=ordrer.kundeid
og måske endda kunder.id=ordrer.kunde.

> Og et tillægsspørgsmål: tabelnavne i ental eller flertal?

Det er op til dig selv at vælge hvad du helst vil. Samme spørgsmål kunne
stilles med sprog, skal tabelnavne og felter være danske, engelske eller
skal de sprogversioneres efter målgruppen? Vælg en løsning og hold dig til
den hele vejen igennem dit projekt.

Jeg foretrækker entalsnavngivning af felter og tabeller.

--
Henrik Stidsen - http://henrikstidsen.dk/
http://fuglemarkedet.dk/ - Danmarks online fuglemarked!

Arne Vajhøj (03-10-2009)
Kommentar
Fra : Arne Vajhøj


Dato : 03-10-09 00:20

Leif Neland wrote:
> Igen eksemplet med kunder, ordrer og ordrelinier.
> Hvad er "best practice"?
>
> Hedder egennøglen kun id og fremmednøglen concat(tabel,id)
> kunder.id=ordrer.kundeid and ordrer.id=ordrelinier.ordreid
>
> Eller det samme i alle tabeller?
>
> kunder.kundeid=ordrer.kundeid and ordrer.ordreid=ordrelinier.ordreid

Hvis du konsekvent bruger tabelnavn.kolonnenavn er det ligegyldigt.

Hvis ikke så vil jeg mere at det er bedst med kundeid.

Eller endnu bedre KundeId eller kunde_id, fordi de er nemmere
at læse.

> Og et tillægsspørgsmål: tabelnavne i ental eller flertal?
> kunde,ordre,ordrelinie
> kunder,ordrer,ordrelinier

Jeg ville bruge ental.

Når du skriver tabelnavn.kolonnenavn mener du en enkelt
værdi d.v.s. fra en enkelt række i tabellen og så virker
ental mest logisk.

Hvis du bruger ORM vil du ofte have klasser med samme
navn som tabel og til klasser vil bruge ental.

Arne

Stig Johansen (03-10-2009)
Kommentar
Fra : Stig Johansen


Dato : 03-10-09 10:33

Leif Neland wrote:

> Igen eksemplet med kunder, ordrer og ordrelinier.
> Hvad er "best practice"?
>
> Hedder egennøglen kun id og fremmednøglen concat(tabel,id)
> kunder.id=ordrer.kundeid and ordrer.id=ordrelinier.ordreid

Jeg ved ikke rigtig hvad du er ude i, men på:
Kundetabellen ville jeg bruge KundeNummer subsidiært KundeNr
Ordrer - OrdreNummer subsidiært OrdreNr.
osv..

'Id' siger jo ikke en skid for dine eventuelle efterkommere.

> Eller det samme i alle tabeller?
>
> kunder.kundeid=ordrer.kundeid and ordrer.ordreid=ordrelinier.ordreid

Det har altid været god latin at lave sigende feltnavne.

I forhold til dit tidligere spørgsmål med at vise en ordre, så afhængig af
infaldsvinklen ville jeg nok vælge (forudsat ordrenummeret er
indfaldsvinklen) at lave 2 forespørglser.

1) Stamdata ordre + kunde oplysninger
2) Ordrelinier (og eventuelle underspecifikationer)

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste