[php/mysql] 3 waardes vormen primary key

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb een klanten tabel daarin zijn relatienummer,mediumid,landenid de primary key.

nu heb ik een dropdownmenu met de namen van de klanten, nu wil ik een onchange doen als dat gebeurt moet ie de 3 waardes submitten. hoe kan dit het makkelijkste ik wil niet alle 3 de waardes in de value proppen van de <option> anders moet ik stringparsing toepassen en dat is naar mijn inziens omslachtig..

iemand enig idee??

Acties:
  • 0 Henk 'm!

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Afaik is dan de enige optie met hidden fields te gaan werken, maar dat lijkt me nog omslachtiger...gewoon alle drie de waardes in de value plaatsen dus ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
Een object of struct maken waarin je de 3 waardes zet die de PK uitmaken, en dat object/struct dan in de Value zetten.

Ik ben eigenlijk een voorstander van 'enkelvoudige' PK - velden. Je maakt dan wel een extra veld bij (autonummering), maar het is imho veel beter.
Een PK zou je imho nooit mogen wijzigen, en dat is niet zo vanzelfsprekend als je 'gebruikersdata' gaat gaan gebruiken om een PK samen te stellen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Zie comment Wwhoami.


+

Kan je er geen unique index van maken?

edit:
ff misbruik gemaakt van de rechten... ;)

[ Voor 35% gewijzigd door whoami op 26-09-2003 10:45 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb misschien een oplossing, die met dat object kan wel maar is op dit moment ff omslachtig, t moet ff simpel zijn....
ik dacht een GET method te maken van mn form en dan alle waardes in de value proppen van de option zo dus:


<option value="{$dropdownlist[i].relatienummer}&medium_id={$dropdownlist[i].medium_id}&landen_id={$dropdownlist[i].landen_id}">

alleen al doe ik dit en ik kijk in mn urlbalk dan is t & %26 en = %3D
als ik voor & & gebruik dan lukt t ook niet....

Iemand enig idee???

ps.ik werk trouwens met Smary dat je niet schrikt van mn code.

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

whoami schreef op 26 September 2003 @ 10:21:
Ik ben eigenlijk een voorstander van 'enkelvoudige' PK - velden. Je maakt dan wel een extra veld bij (autonummering), maar het is imho veel beter.
Een PK zou je imho nooit mogen wijzigen, en dat is niet zo vanzelfsprekend als je 'gebruikersdata' gaat gaan gebruiken om een PK samen te stellen.
de PK moet uniek zijn voor het tabel, en in principe nooit veranderen.

Daar tegenover staat dus dat afhankelijk van de situatie of een enkelvoudige PK beter is of niet. Dat kan je niet bij voorbaat stellen dat het altijd veel beter is, in veel gevallen is het juist net niet beter, maar bevoorderd voor veel mensen het bouwen van slecht database modellen omdat er informatie wordt toegevoegd die eigenlijk genormaliseerd zouden moeten worden.

Bij de vraagsteller is dit het geval, het database model is niet correct en komt derhalve in de problemen. Misschien dat het in zijn geval beter is om een enkelvoudige PK te gebruiken, echter kan je zeer zeker niet stellen dat dat altijd "veel beter" is.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 12:06
Je kunt met CONCAT() in SQL velden samenvoegen tot 1 veld... vorobeeld:

SELECT * FROM tabel WHERE CONCAT(relatienummer,CONCAT(mediumid,landenid))='jouwinput'

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
dusty schreef op 26 September 2003 @ 10:47:
[...]

Daar tegenover staat dus dat afhankelijk van de situatie of een enkelvoudige PK beter is of niet. Dat kan je niet bij voorbaat stellen dat het altijd veel beter is, in veel gevallen is het juist net niet beter, maar bevoorderd voor veel mensen het bouwen van slecht database modellen omdat er informatie wordt toegevoegd die eigenlijk genormaliseerd zouden moeten worden.
Mja, ik zou me geen situatie kunnen indenken waarin het gebruik van een extra - veld als PK niet zo goed zou zijn als een samengestelde sleutel. (Behalve dan bij 'relatie'-tabellen).
Bij de vraagsteller is dit het geval, het database model is niet correct en komt derhalve in de problemen. Misschien dat het in zijn geval beter is om een enkelvoudige PK te gebruiken, echter kan je zeer zeker niet stellen dat dat altijd "veel beter" is.
Z'n datamodel kan wel niet correct zijn, echter kan je dat nu niet met zekerheid zegggen. Daar heb je net iets te weinig info voor nodig.
Maar de kans is wel groot ja.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
jurri@n schreef op 26 September 2003 @ 10:51:
Je kunt met CONCAT() in SQL velden samenvoegen tot 1 veld... vorobeeld:

SELECT * FROM tabel WHERE CONCAT(relatienummer,CONCAT(mediumid,landenid))='jouwinput'
En hoe ga je ze dan weer uit elkaar halen?

Daarnaast is het ophalen van data op die manier foutgevoelig en traag. Er zullen nl. geen indexen gebruikt worden.

[ Voor 17% gewijzigd door whoami op 26-09-2003 11:04 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dbmodel uitleg:
relatienummer is niet uniek wel in combinatie met het mediumid en het landenid
en de database is heel lang geleden gebouwt en er staan meer dan 500.000 records in dus....
Pagina: 1