-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
"Tue Hellstern" <info@f1-support.dk> writes:
> Jeg har et problem som jeg er gået "død" på.
Ja, sådan går det ofte, når man er uerfaren. Man begår en masse fejl,
lærer af dem, og pludseligt er man ikke så uerfaren længere. Så bliver
det først rigtigt sjovt, for så er det alle de interessante problemer,
man går død på.
> I en tabel har jeg nogle oplysninger om en bils start og stop tider:
> Bil1 Start 10.00 Sted1
[...]
> OSV.
Ville det ikke give bedre mening med en tabel, der ser ud noget i
retning af dette:
bil | starttid | stoptid | startsted | stopsted
----+----------+---------+-----------+---------
b1 | t0 | t1 | s0 | s1
b1 | t | NULL | s1 | NULL
osv.
I række 2 mangler der tydeligtvis ankomstinformation. Hvis alt går
vel, antaget at databasen opdateres i 'rigtig rækkefølge', kan der til
enhver tid kun være én sådan række for hver bil, og der vil altid være
en sådan række, når databasen opdateres med bilens ankomst. Så
opdaterer du 'alle' rækker med bilens ID, hvor stoptid og stopsted er
NULL.
På denne måde har du designet dig udenom problemet. Forespørgsler på
køretid bliver dermed meget enkle. Hvis tiderne er standard SQL92
timestamps, skulle man kunne lave forespørgsler som
SELECT SUM(stoptid - starttid) FROM tabel
WHERE bil = b1
AND starttid >= '2002-10-14 00:00:00'
AND stoptid < '2002-10-15 00:00:00';
der fortæller dig, hvor meget bil b1 har kørt i dag.
Martin
- --
Homepage:
http://www.cs.auc.dk/~factotum/
GPG public key:
http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <
http://www.gnupg.org>
iEYEARECAAYFAj2q+kAACgkQYu1fMmOQldVXNACeOZFsnhbWcKh3XHsGv7DawPA8
sVkAoLoRVH5FOOq/g1lCWyUqT5bJAvxE
=Ugb6
-----END PGP SIGNATURE-----