Back to Question Center
0

Semalt URL-adresser med gamle primære nøkler til nye primære nøkler

1 answers:

Vi har en database som vi oppnådde via en kryp, hvor hver rad inneholder en primærnøkkel X og et unikt nummer Y oppnådd fra gjennomsøkingsprosedyren (primærnøkkelen til den opprinnelige kilden). Av historiske årsaker bruker vi X for å opprette nettadressene til hvert objekt (f.eks. g - video vixen vampire. http: // eksempel. com / objekt / X ).

Denne databasen var i Mysql, og vi overfører dataene til Postgres. For det formål bestemte vi oss for å krype den opprinnelige kilden fra bunnen av (av andre grunner vurdert) til den nye databasen. Dette betyr at vi nå har en ny primærnøkkel Z knyttet til de unike tallene Y .

Problemet er at hvis vi overfører databasen på produksjon, blir linkene http: // eksempel. com / object / Z , som peker på et annet objekt enn http: // eksempel. com / objekt / X (siden X! = Z => forskjellig Y verdi).

Naturligvis ønsker vi ikke at dette skal skje siden 1. søkemotorer vil peke på feil objekt og 2. gamle lenker som peker mot objektet X1-> Y1 , startpunkt til objektet Z1-> Y2! = Y1 .

Dette problemet foreslår allerede at vi vil ha nettadresser konstruert fra Y . Spørsmålet er nå hvordan man gjør denne overføringen.

Jeg ser to tilnærminger til problemet:

  1. ved hjelp av den gamle databasen, opprett en omdirigering av lenken til en lenke som bare avhenger av Y http: // eksempel. com / object / X -> http: // eksempel. com / object1 / Y , vent 1 måned, og deretter migrere databasen sammen med en endring i nettadressene til de som bruker Y .

  2. Opprett en ny kolonne i den nye databasen old_pk , og utfør en overgang fra den gamle databasen til den nye databasen ved å sette inn den gamle X på rad med lik Y , og deretter til http: // eksempel. com / object / X -> http: // eksempel. com / object_ / Y (for å unngå disse problemene i fremtiden)

Den 1. har ulempen at hele produksjonen må vente på koblingene til å migrere, og vil ikke opprettholde gamle nettadresser for evigheten. 2 har ulempen det vil ta tid å migrere siden databasen inneholder +600. 000 oppføringer, og den nye databasen inneholder eldre data. Jeg er mer tilbøyelig til å 2. , men jeg vil gjerne ha en annen mening:

  1. gir denne resonnement mening?
  2. er det andre tilnærminger som vi ikke ser?
February 14, 2018