🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #17351

Re: sql vraagje

#17351
From: MindTrap
Date: Wed, 05 Jan 2000 00:00
89 lines
3293 bytes
Ben De Rydt wrote:
> 
> MindTrap wrote:
> > met andere woorden: dit matcht nooit
> >
> > of vergis ik me?
> 
> Inderdaad, dat matcht nooit. Mijn fout.

't is u vergeven :)

> 
> Dan zijn er drie mogelijkheden, waarbij ik alleen achter
> de eerste sta:
> 1. verander de datastructuur, of leg degelijk uit waarom
>    het zo moet. Ik ben er vrijwel 100% van overtuigd dat
>    die niet correct is.

'k zal het eens heel concreet proberen uit te leggen:

ik wil een cgi script maken dat een form laat zien waarvan de velden
omschreven worden in een table. De gegevens uit die form moeten dus
opgeslagen worden in een andere table.

mijn aanpak was het volgende:
voorbeeld van die tables:

velden-table:	(type geeft weer of het een tekstveld is of een combobox
of zo)
	
	id	naam	type 	[en nog wa rommel]
	----------------------
	1	veld1	1
	2	veld2	2

data-table:


	id	veld_id	waarde	[en nog wa rommel]
	-----------------------
	1	1	inhoud_veld1
	1	2	inhoud_veld2
	2	1	blah
	2	2	blah



ik denk dat mijn data op deze manier degelijk opgeslagen kan worden,
maar het blijkt dus een probleempje te zijn om erin te zoeken


(een andere aanpak die door mijn hoofd gespookt heeft is om "alter
table" 's te doen als mijn veldentabel verandert en zo een datatabel te
maken op de cannonieke manier, maar het lijkt met nogal ingewikkeld,
omslachtig en lomp)

is het duidelijk genoeg zo?	


> 2. werk met tabel-aliasen.
>    (zoiets als:
>     SELECT TABLE1.ID
>     FROM TABLE AS TABLE1, TABLE AS TABLE2
>     WHERE  (TABLE1.ID = TABLE2.ID)
>       AND  (TABLE1.type = 1 AND TABLE1.waarde = "eerste")
>       AND  (TABLE2.type = 2 AND TABLE2.waarde = "tweede")
>    )

dit zou inderdaad kunnen werken, maar het wordt inderdaad veel te
complex als ik veel velden heb

> 3. werk met een geneste subquery (ineffici�nt).
>     SELECT ID
>     FROM TABLE
>     WHERE (type = 1 AND waarde = "eerste") AND
>           ID IN
>              SELECT ID FROM TABLE
>              WHERE type = 2 AND waarde = "tweede"

lijkt me ook werkend


met veel dank voor alle moeite,
Tom



---
Join the army. Meet interesting people. Kill them.
Technical Details
Message-ID: <3873B314.91BFAAFE@linuxfreak.com>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <3873800B.CE8DB5BE@linuxfreak.com> <387382DE.95EA1484@co.and.co> <3873898A.B94BA56E@linuxfreak.com> <38738B1A.FCD7C056@co.and.co> <38738B31.57FF9425@linuxfreak.com> <38738CD3.8878F89C@co.and.co> <387393B9.FC892506@linuxfreak.com> <38739698.5B8A5570@co.and.co> <3873A908.8D2AB38A@linuxfreak.com> <3873AEE7.3F8BAD3A@co.and.co>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,adf63b3fcd32c9b4
X-Google-Attributes: gidfcea4,public
From: MindTrap <IDONTLIKESPAM.MindTrap@linuxfreak.com>
Subject: Re: sql vraagje
Date: 2000/01/05
Message-ID: <3873B314.91BFAAFE@linuxfreak.com>
X-Deja-AN: 568799925
Cache-Post-Path: marvin!unknown@tvd-10-67-52-33.tvd.kotnet.kuleuven.ac.be
Content-Transfer-Encoding: 8bit
References: <3873800B.CE8DB5BE@linuxfreak.com> <387382DE.95EA1484@co.and.co> <3873898A.B94BA56E@linuxfreak.com> <38738B1A.FCD7C056@co.and.co> <38738B31.57FF9425@linuxfreak.com> <38738CD3.8878F89C@co.and.co> <387393B9.FC892506@linuxfreak.com> <38739698.5B8A5570@co.and.co> <3873A908.8D2AB38A@linuxfreak.com> <3873AEE7.3F8BAD3A@co.and.co>
X-Accept-Language: en
Content-Type: text/plain; charset=iso-8859-1
X-Complaints-To: abuse@belnet.be
X-Trace: naxos.belnet.be 947106583 4962 134.58.127.3 (5 Jan 2000 21:09:43 GMT)
Organization: KULeuvenNet
X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/)
Mime-Version: 1.0
NNTP-Posting-Date: 5 Jan 2000 21:09:43 GMT
Newsgroups: be.comp.programming