|
| Sammenlign to tabeller i mysql Fra : Jonas Jalling |
Dato : 23-07-03 10:23 |
|
Hej,
Lidt info:
Jeg er igang med at lave et program til at synkronisere mp3-filer
imellem to computere. Til det, har jeg en database med to tabeller. Den
ene (old-files) indeholder en liste med filer, fra sidste
synkronisering, samt al info fra hver enkelt fils id3-tag (som titel,
kunstner mm.), samt et unikt-id til hver fil. Den anden tabel
(current-files) er opbygget på samme måde, men blot en liste med de
filer der er nu.
Mit spørgsmål er så:
Hvordan kan jeg se om der er nogen ændringer i current-files i forhold
til old-files? Jeg har synes at jeg har pløjet igennem mysql-manualen,
men har ikke rigtig funde noget brugbart. Har jeg ikke kigget godt nok
efter?
Håber jeg har forklaret mig godt nok, ellers uddyber jeg gerne.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 11:57 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bflk5n$3v9$1@sunsite.dk...
> Hej,
>
> Lidt info:
> Jeg er igang med at lave et program til at synkronisere mp3-filer
> imellem to computere. Til det, har jeg en database med to tabeller. Den
> ene (old-files) indeholder en liste med filer, fra sidste
> synkronisering, samt al info fra hver enkelt fils id3-tag (som titel,
> kunstner mm.), samt et unikt-id til hver fil. Den anden tabel
> (current-files) er opbygget på samme måde, men blot en liste med de
> filer der er nu.
Først - Hvorfor har du den samme information (Kunstner mv) i to tabeller?
Jeg vil mene dit setup skal laves om.
mp3
---
ID
Kunstner
computer
--------
ID
Navn
lager
-----
ref_mp3_id
ref_computer_id
Lager er nu blot henvisninger til den givne MP3 og computer.
Nu kan du så trække al den data du vil omkring hvilke computere der har hvad
osv.
Kan det bruges eller ønsker du at beholde dit nuværende setup?
Mvh
Jimmy
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 12:58 |
|
Jimmy wrote:
> "Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
> news:bflk5n$3v9$1@sunsite.dk...
>> Hej,
<snip>
>
> Først - Hvorfor har du den samme information (Kunstner mv) i to
> tabeller?
>
Fordi det kunne være blevet ændret. Måske havde man opdaget en stavefejl
el. lign.
> Jeg vil mene dit setup skal laves om.
>
> mp3
> ---
> ID
> Kunstner
>
>
> computer
> --------
> ID
> Navn
>
>
> lager
> -----
> ref_mp3_id
> ref_computer_id
>
>
> Lager er nu blot henvisninger til den givne MP3 og computer.
> Nu kan du så trække al den data du vil omkring hvilke computere der
> har hvad osv.
>
> Kan det bruges eller ønsker du at beholde dit nuværende setup?
>
Jeg vil helst beholde det nuværende, da det imho er det smarteste.
Ellers tak for forslaget.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 13:20 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bflt8k$8vn$1@sunsite.dk...
> Jimmy wrote:
> > "Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
> > news:bflk5n$3v9$1@sunsite.dk...
> >> Hej,
> <snip>
> >
> > Først - Hvorfor har du den samme information (Kunstner mv) i to
> > tabeller?
> >
>
> Fordi det kunne være blevet ændret. Måske havde man opdaget en stavefejl
> el. lign.
Ja - Og *præcis* derfor skal man kun have den samme slags information *eet*
sted.
> > Kan det bruges eller ønsker du at beholde dit nuværende setup?
> >
>
> Jeg vil helst beholde det nuværende, da det imho er det smarteste.
hehe - Det er godt.
Mvh
Jimmy
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 13:40 |
|
Jimmy wrote:
<snip>
> Ja - Og *præcis* derfor skal man kun have den samme slags information
> *eet* sted.
>
Hmm.. Jeg kan forstå at jeg ikke har forklaret mit problem godt nok. Jeg
har to maskiner med mp3-filer. De skal så vidt muligt være
synkroniseret. Derfor: Når der bliver ændret noget i en fil på den ene
computer, skal det også ændres på den anden computer. Derfor bliver jeg
jo nødt til at sammenholde med data fra forrige synkronisering, for at
kunne se om der er ændringer eller ej.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 13:59 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bflvmk$skf$1@sunsite.dk...
> Jimmy wrote:
> <snip>
> > Ja - Og *præcis* derfor skal man kun have den samme slags information
> > *eet* sted.
> >
>
> Hmm.. Jeg kan forstå at jeg ikke har forklaret mit problem godt nok. Jeg
> har to maskiner med mp3-filer.
Ah på den måde.
Jeg troede du blot ville vedligeholde en liste.
> De skal så vidt muligt være
> synkroniseret. Derfor: Når der bliver ændret noget i en fil på den ene
> computer, skal det også ændres på den anden computer. Derfor bliver jeg
> jo nødt til at sammenholde med data fra forrige synkronisering, for at
> kunne se om der er ændringer eller ej.
Men hvad så hvis der er ændret i samme fil på begge computere?
Jeg ville ikke anvende en database på denne måde til at holde styr på filer.
Til den slags ville jeg anvende Windows Commander's Syncronize Dirs
funktion.
Den fungerer både over Null-modem, FTP og shares.
Mvh
Jimmy
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 14:19 |
|
Jimmy wrote:
> "Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
> news:bflvmk$skf$1@sunsite.dk...
>> Jimmy wrote:
>> <snip>
>>> Ja - Og *præcis* derfor skal man kun have den samme slags
>>> information *eet* sted.
>>>
>>
>> Hmm.. Jeg kan forstå at jeg ikke har forklaret mit problem godt nok.
>> Jeg har to maskiner med mp3-filer.
>
> Ah på den måde.
> Jeg troede du blot ville vedligeholde en liste.
>
Ja, det forstod jeg
>
>> De skal så vidt muligt være
>> synkroniseret. Derfor: Når der bliver ændret noget i en fil på den
>> ene computer, skal det også ændres på den anden computer. Derfor
>> bliver jeg jo nødt til at sammenholde med data fra forrige
>> synkronisering, for at kunne se om der er ændringer eller ej.
>
> Men hvad så hvis der er ændret i samme fil på begge computere?
>
> Jeg ville ikke anvende en database på denne måde til at holde styr på
> filer.
>
> Til den slags ville jeg anvende Windows Commander's Syncronize Dirs
> funktion.
> Den fungerer både over Null-modem, FTP og shares.
>
Ja, det havde nok også været det smarteste. Problemet er blot, at:
1. det skal gøres over adsl, så det er lettere, bare at rette i
id3-tagget på den anden fil, end at overføre hele filen, bare fordi en
stavefejl er rettet.
2. Det skal gøres automatisk, om natten, når linjerne alligevel ikke
bliver brugt.
3. Det skal køre på linux. (Jeg kunne have brugt rsync, men se pkt. 1).
--
Med venlig hilsen
Jonas Jalling
| |
Morten Guldager (23-07-2003)
| Kommentar Fra : Morten Guldager |
Dato : 23-07-03 21:20 |
|
Wed, 23 Jul 2003 at 13:19 GMT Jonas Jalling wrote
>>
> Ja, det havde nok også været det smarteste. Problemet er blot, at:
> 1. det skal gøres over adsl, så det er lettere, bare at rette i
> id3-tagget på den anden fil, end at overføre hele filen, bare fordi en
> stavefejl er rettet.
> 3. Det skal køre på linux. (Jeg kunne have brugt rsync, men se pkt. 1).
Jammen rsync overfører da kun de ændringer der er mellem 2 filer, hvis ikke
det er meget der er forandret.
/Morten
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 21:45 |
|
Morten Guldager wrote:
<snip>
Ja, sorry. My bad. Grunden til at jeg ikke bruger rsync er, at det jo er
en "to-vejs-synkronisering", Det understøttet rsync vist ikke. Enten
synkroniserer man den ene vej, eller også den anden. Det holder jo ikke
rigtig.
--
Med venlig hilsen
Jonas Jalling
| |
Kim Hansen (23-07-2003)
| Kommentar Fra : Kim Hansen |
Dato : 23-07-03 21:49 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> writes:
> Morten Guldager wrote:
> <snip>
>
> Ja, sorry. My bad. Grunden til at jeg ikke bruger rsync er, at det jo er
> en "to-vejs-synkronisering", Det understøttet rsync vist ikke. Enten
> synkroniserer man den ene vej, eller også den anden. Det holder jo ikke
> rigtig.
Prøv at kigge på Unison, det er vidst en slags to-vejs rsync.
Dit problem med at holde styr på hvad der var rettet i den ene
database i forhold til den anden, kan løses med et timestamp der
bliver opdateret ved rettelser i datasættet.
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 22:22 |
|
Kim Hansen wrote:
> "Jonas Jalling" <jonas@jalling.dk.invalid> writes:
>
>> Morten Guldager wrote:
>> <snip>
>>
>> Ja, sorry. My bad. Grunden til at jeg ikke bruger rsync er, at det
>> jo er en "to-vejs-synkronisering", Det understøttet rsync vist ikke.
>> Enten synkroniserer man den ene vej, eller også den anden. Det
>> holder jo ikke rigtig.
>
> Prøv at kigge på Unison, det er vidst en slags to-vejs rsync.
>
> Dit problem med at holde styr på hvad der var rettet i den ene
> database i forhold til den anden, kan løses med et timestamp der
> bliver opdateret ved rettelser i datasættet.
Hej Kim,
Du har lige sparet mig for mange timers arbejde! Mange tak. Det var lige
Unison jeg ledte efter.
Nu behøver jeg ikke rode med database osv., for at få det til at spille.
Det er jo perfekt.
--
Med venlig hilsen
Jonas Jalling
| |
Jan Eliasen (23-07-2003)
| Kommentar Fra : Jan Eliasen |
Dato : 23-07-03 12:20 |
|
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 13:08 |
|
Jan Eliasen wrote:
> On Wed, 23 Jul 2003, Jonas Jalling wrote:
>
>> Håber jeg har forklaret mig godt nok, ellers uddyber jeg gerne.
> Hvis jeg har forstået dig rigtigt er det egenlig differencen mellem
> de to tabeller du vil have - SQL har en EXCEPT operator - men jeg ved
> tæt på ingenting om mysql. Hvis den understøtter den ser den så vidt
> je ghusker sådan ud:
>
> (select * from new_table) except (select * from old_table)
>
> Men så skal de to tabeller jo altså være ens.
Tak, det ser ud til at det er hvad jeg skal bruge. Prøver at lege lidt
med det.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 18:08 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bflk5n$3v9$1@sunsite.dk...
> Hej,
>
> Lidt info:
> Jeg er igang med at lave et program til at synkronisere mp3-filer
> imellem to computere. Til det, har jeg en database med to tabeller. Den
> ene (old-files) indeholder en liste med filer, fra sidste
> synkronisering, samt al info fra hver enkelt fils id3-tag (som titel,
> kunstner mm.), samt et unikt-id til hver fil. Den anden tabel
> (current-files) er opbygget på samme måde, men blot en liste med de
> filer der er nu.
Jeg kan ikke helt overskue tabelstrukturen.
Kan du ikke sende et phpmyadmin dump af strukturen?
> Mit spørgsmål er så:
> Hvordan kan jeg se om der er nogen ændringer i current-files i forhold
> til old-files?
Er det ren SQL du søger?
Eller er det nok at kode sig ud af det i php/asp, hvilket vil være ret
simpelt.
Mvh
Jimmy
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 20:00 |
|
Jimmy wrote:
<snip>
>
> Jeg kan ikke helt overskue tabelstrukturen.
> Kan du ikke sende et phpmyadmin dump af strukturen?
>
Here you go:
CREATE TABLE `track` (
`id` varchar(32) NOT NULL default '',
`filename` varchar(255) NOT NULL default '',
`albumID` smallint(6) NOT NULL default '0',
`title` varchar(255) default NULL,
`bitrate` char(3) default NULL,
`tracknr` tinyint(4) NOT NULL default '0',
`length` varchar(12) NOT NULL default '',
`freq` varchar(5) NOT NULL default '',
`mode` varchar(5) NOT NULL default '',
`artist` varchar(255) NOT NULL default '',
`filesize` varchar(9) NOT NULL default '',
) TYPE=MyISAM;
>
>> Mit spørgsmål er så:
>> Hvordan kan jeg se om der er nogen ændringer i current-files i
>> forhold til old-files?
>
> Er det ren SQL du søger?
> Eller er det nok at kode sig ud af det i php/asp, hvilket vil være ret
> simpelt.
Ja, jeg synes at det ville være smartest med ren sql, da det er det imho
er det pæneste. Jeg kan sagtens kode mig ud af det, men vil hellere
holde mig til sql.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 21:27 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bfmlup$93g$1@sunsite.dk...
> Jimmy wrote:
> <snip>
> >
> > Jeg kan ikke helt overskue tabelstrukturen.
> > Kan du ikke sende et phpmyadmin dump af strukturen?
> >
>
> Here you go:
> CREATE TABLE `track` (
[klip]
Der må da være flere tabeller end den ene?
Mvh
Jimmy
| |
Jonas Jalling (23-07-2003)
| Kommentar Fra : Jonas Jalling |
Dato : 23-07-03 21:32 |
|
Jimmy wrote:
>
> [klip]
>
> Der må da være flere tabeller end den ene?
Ja, der er en til albums. Men ellers ikke. track og old-tracks er ens.
Det er de to tabeller jeg ønsker at sammenligne.
--
Med venlig hilsen
Jonas Jalling
| |
Jimmy (23-07-2003)
| Kommentar Fra : Jimmy |
Dato : 23-07-03 21:44 |
|
"Jonas Jalling" <jonas@jalling.dk.invalid> wrote in message
news:bfmrb2$951$1@sunsite.dk...
> Jimmy wrote:
> >
> > [klip]
> >
> > Der må da være flere tabeller end den ene?
> Ja, der er en til albums. Men ellers ikke. track og old-tracks er ens.
> Det er de to tabeller jeg ønsker at sammenligne.
OK - Fint.
Hvordan er din primærnøgle bygget op?
Understøtter din MySQL subselects?
Mvh
Jimmy
| |
|
|