Avatar billede tdafoobar Nybegynder
22. juli 2006 - 21:04 Der er 7 kommentarer og
1 løsning

Navngivning af tabeller

Hejsa

Hvordan bør man navngive dette setup

[Page]
pageId
title
content

[module]
moduleId
name

[<navn>]
<navn>Id
pageId
moduleId

Altså hvor jeg har mange kollonner i <navn> tabellen, som er de defineret moduler for min Page. Jeg har hørt folk bruge navne som:

moduleInPage
pageInModule
page_module

Men hvad er den uofficielle standard på højere plan ? ønsker at navngive på den best mulige måde :)
Avatar billede arne_v Ekspert
22. juli 2006 - 21:12 #1
Den tabel er en M:M relation mellem page og module ?

Jeg kan ikke lide *In*, så en af:

page_module
module_page
PageModule
ModulePage

Jeg tror ikke at det er så vigtigt hvilken. Folk kan nok regne ud hvad det er.

PS: Jeg ville nok undlade id kolonnen og bruge en sammensat primærnøgle (et af
de få tilfælde hvor jeg synes at det er en god ide).
Avatar billede tdafoobar Nybegynder
22. juli 2006 - 21:19 #2
okay :)

Ved ikke så meget om relationer, så skal ikke kunne sige det, men konceptet er at min page_module (tror jeg vælger dette navn, så passer det i alfabetisk rækkefølger) skal indeholde alle de valgte moduler, dvs. moduleId kan gentage sig ved forskellige pageId's.

Kan du forklare mere om hvad en sammensat primærnøgle er ? Har ikke rigtig prøvet at undnytte de advanceret features i databaser endnu, men bare oprettede tabeller og så brugt selects/joins til at få data ud.
Avatar billede arne_v Ekspert
22. juli 2006 - 21:40 #3
en sammensat primærnøgle er når primær nøglen udgøres af 2 eller flere felter
kombineret

det er normalt ikke særligt anbefalelsesværdigt men lige netop her mener jeg at det er OK
Avatar billede arne_v Ekspert
22. juli 2006 - 21:40 #4
og det lyder som om det er en M:M relation - et modul kan være tilnyttet mange pages
og en page kan have tilknyttet mange moduler
Avatar billede tdafoobar Nybegynder
22. juli 2006 - 21:46 #5
okay, mange tak :) (læg svar).

Skal en sammensat primærnøgle oprettes på nogen special måde ? eller skal jeg bare sætte PRIMARY på 2 felter?
Avatar billede tdafoobar Nybegynder
22. juli 2006 - 21:46 #6
og hvilke felter var det jeg skulle sætte primærnøgle på ?
Avatar billede arne_v Ekspert
22. juli 2006 - 22:23 #7
CREATE TABLE page_module (
  pageid INTEGER NOT NULL,
  moduleid INTEGER NOT NULL,
  PRIMARY KEY(pageid,moduleid)
);

skulle vist besvare begge spørgsmål.

Hvis du bruger en GUI DB management tool, så skal du sikkert bare sætte
to krydser i primary key.

Og svar.
Avatar billede tdafoobar Nybegynder
23. juli 2006 - 20:12 #8
mange tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester