Avatar billede Slettet bruger
08. december 2003 - 21:44 Der er 9 kommentarer og
2 løsninger

Begrænse hvilke værdier der kan indtastes

Hej Eksperter

Er der nogle af jer der ved hvordan man kan bestemme hvilke værdier en bruger kan indtaste i en tabel.

Jeg skal oprette en database der indeholder beskrivelser af en masse huse. Under TYPE vil jeg gerne have at brugeren kun kan indtaste værdierne "hus", "lejlighed", "landbrug" eller "sommerhus".

Hvordan gør jeg det?

palau
Avatar billede terry Ekspert
08. december 2003 - 21:48 #1
Yes! If you are using an Access database then you should have a table containing these values. Then you can show the values in a combo box!
Avatar billede terry Ekspert
08. december 2003 - 21:49 #2
So only the values in the Access table will be visible in the combo :o)
Avatar billede arne_v Ekspert
08. december 2003 - 21:49 #3
Database mæssigt kan du lave en tabel med de legale værdier og sætte din
database op til at enforce referentiel integritet fra feltet til
den tabel.

De fleste putter den form for funktionalitet i applikationen fremfor
i databasen.
Avatar billede Slettet bruger
08. december 2003 - 21:52 #4
Undskyld min manglende præcision, men databasen er postgres. Jeg ved godt der er en kategori for postgres, men der er efter alt at dømme ikke ret mange der kommer der, så jeg tog chancen i en mere generelt kategori.

palau
Avatar billede Slettet bruger
08. december 2003 - 21:54 #5
Til arne_v

Databasen skal bruges sammen med php. Giver det mig nogle ekstra muligheder for at løse problemet?

palau
Avatar billede arne_v Ekspert
08. december 2003 - 21:55 #6
Avatar billede arne_v Ekspert
08. december 2003 - 21:58 #7
Det må da være ret nemt at lade type være en select i.s. input type text.
Avatar billede trer Nybegynder
08. december 2003 - 22:01 #8
De ovenstående svar fungerer under alle relationelle databaser.

Du lægger blot en fremmednøgle - foreign key constraint - fra din data-tabel til tabellen der indeholder dine værdier.  Dermed vil databasen nægte at indsætte ukendte værdier.

typisk (pseudo) sql til dette
create table housing (
  id number primary key,
  ...
  housetype_id number)
;
create table housetype (
  id number primary key,
  housetype varchar(10) )
;

alter table housing add constraint housetype on (housetype_id) references housetype(id);

Du skal dog stadigvæk i din overliggende applikation give folk mulighed for at vælge den ønskede værdi - typisk i en dropdown menu.
Avatar billede Slettet bruger
08. december 2003 - 22:11 #9
Til trer

Læg et svar, så deler du med arne_v

palau
Avatar billede trer Nybegynder
08. december 2003 - 22:22 #10
Tak, men ikke rimeligt da jeg egentligt kun uddybede Arnes (og Terrys) svar.
Avatar billede Slettet bruger
08. december 2003 - 22:25 #11
Ok trer, men tak alligevel. Så deler de to andre.

palau
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