Kom ihåg mig?
Home Menu

Menu


Koppla ihop Databaser mellan servrar/system

Ämnesverktyg Visningsalternativ
Oläst 2009-05-18, 14:49 #1
youhann youhann är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 13
youhann youhann är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 13
Oi!

Sitter och utvecklar en applikation som använder en tjänst från tredjepart.
vad jag behöver göra är att på något sätt koppla ihop vår databas med deras och lurar lite på vilket tillvägagångssätt som är att föredra...

Bakgrundsinfo:

Vår databas innehåller användare som är indelade i olika kategorier och typer. Detta görs med hjälp av många-till-många relationer.
Användarna kan med hjälp av extern applikation lägga till uppgifter/data (filer) till sitt konto. Detta sparar i tredjeparts databas.
Jag har ingen möjlighet att påverka databasstruturen hos tredjepart. Enda infon som finns i båda systemen är ett unikt användar-id (som är samma i båda systemen för varje användare).

Jag behöver nu koppla ihop systemen och söka/filtrera i dem...
En sökning i vårt system är inga problem, men när det ska kopplas till tredjeparts så blir det lätt väldigt många querys (en för varje resultatträff i vårt).

Två scenarion för att lösa ovanstående:

1. Skapar ett cron-jobb som med jämna mellanrum kollar upp vad som förändrats i tredjeparts databas och speglar infon i vår.

2. Vid varje query hämtar jag ut allt ur tredjeparts databas och gör till objects eller arrays och jämför sedan dessa med query-resultat i vår databas innan output.

Jag ser flera problem med båda lösningarna. Den första speglar infon (blir väldigt mycket data att spegla, trög query, systemet uppdateras inte on-the-fly).
Den andra inbegriper en query som hämtar ut alla rader ur tredjeparts databas. Detta resultat riskerar att bli väldigt stort. Hur påverkar detta performance?

Vilket är att föredra? Finns det andra sätt som jag inte tänkt på?
För och nackdelar med de olika lösningarna?

Sjukt tacksam för all input!

/youhann
youhann är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-18, 19:44 #2
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
taz76 taz76 är inte uppkopplad
Flitig postare
 
Reg.datum: Jan 2008
Inlägg: 388
Jag misstänker den bästa lösningen är att spegla via ett cron-jobb. Om du ska köra en massa queries för att hämta/jämföra information direkt så blir det en tyngre belastning för servern - tänk sedan om det är flera användare som begär samtidigt eller nästan samtidigt.. det växer rätt rejält då.

Med lösning 2 och om tredjepartsservern är trög eller nere då blir det en ännu längre fördröjning - vilket man slipper om det är speglat och sköts i bakgrunden.
taz76 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-18, 20:05 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Jag röstar också på spegling med cron. Kanske bara köra en gång varje natt om det inte är nödvändigt med den allra senaste uppdateringen. Hur ofta ni ska köra beror dels på mängden data och dels på hur pass viktigt det är med att allt är up to date.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-18, 20:09 #4
youhann youhann är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 13
youhann youhann är inte uppkopplad
Nykomling
 
Reg.datum: Jan 2008
Inlägg: 13
Ye, lutar mot cronjobb....
Kanske bör tillägga att jag inte har direkt access till den externa databasen...

Tack för input!
youhann är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-18, 20:11 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by youhann@May 18 2009, 20:09
Ye, lutar mot cronjobb....
Kanske bör tillägga att jag inte har direkt access till den externa databasen...
Tack för input
Det kanske går att få en xml-feed?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-23, 01:51 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Vad vill du egentligen göra, att söka och filtera är inget användningfall, utan en teknisk beskrivning av vad du gör.

Det är normalt en dålig idé att dubbellagra information i två databaser, det kallas redundans och bör undvikas.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-23, 02:15 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by ConnyWesth@May 23 2009, 01:51
Vad vill du egentligen göra, att söka och filtera är inget användningfall, utan en teknisk beskrivning av vad du gör.
Det är normalt en dålig idé att dubbellagra information i två databaser, det kallas redundans och bör undvikas.
Sker uppdatering enbart i den ena så spelar det mindre roll. Den ena databasen är ju extern i det här fallet.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-26, 05:57 #8
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Vad jag syftar på är att det är viktigt att tänka igenom vad och hur systemet ska användas, då visar det sig troligen att man inte behöver dubbellagra info, det har jag sett vid flera tillfällen....

Tänk före, och tänk stort...
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:08.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017