Pagina 2 din 2 PrimulPrimul 12
Rezultate 11 la 16 din 16

Subiect: Cum sincronizez 3 tabele?

  1. #11
    Avatarul lui Dever
    Dever este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    28th July 2006
    Locaţie
    UK
    Vârstă
    44
    Posturi
    378
    Putere Rep
    37


    Implicit

    Revin cu cateva detalii asupra sincronizarii (acum sunt un pic mai fresh).

    Consider ca cea mai buna idee ar fi sa faci ceva general. Cu toate ca acum nu ai nevoie sa sincronizezi decat un tabel, poate mai incolo va trebui sa sincronizezi mai multe.

    Solutia mea (era pt Firebird tot un DB relational de tip SQL) era cam asa:

    - fiecare tabel care trebuia sincronizat avea triggere pt insert, update, delete care "notau" operatia intr-un tabel de sincronizare;
    (De ex se insera numele tabelului, id-ul, numarul de ordine, tipul operatiei)
    - pe fiecare server (Win) exista un service care la fiecare X minute se conecta la baza de date si lua toate operatiile in ordine si le replica pe celelalte servere;
    (odata ce o operatiune se executa cu succes randul din tabelul de replicare capata o bifa de "done");

    Cateva optimizari:
    - daca un rand se updata de mai multe ori inainte ca sincronizarea sa ruleze, pe celelalte servere se executa un singur update;
    - daca un rand nou inserat era sters inainte de a se sincroniza catre celelalte servere, se stergea randul din tabelul de sincronizare (nu avea rost sa faci insert ca apoi sa faci delete);

    Firebird-ul are niste asa numite "generatoare" de ID-uri care mentin unicitatea unei variabile (ca sa nu ii zic generator). Cu toate ca MySQL nu are asa ceva se poate emula foarte usor cu un tabel (sa ii zicem) GENERATOR cu o singura coloana ID (cu autoincrement) pe serverul master.

    Sa zicem ca pe serverul 1 se face un insert intr-un tabel. Cererea de numar de ordine (de la master) presupune un insert in tabelul generator si returnarea ID-ului generat.

    Bineinteles ca exista problema Master-ul nu raspunde care se poate rezolva in mai multe modalitati:
    - se pune un numar foarte mare in loc de numarul de ordine care nu se sincronizeaza pana nu este inlocuit cu un numar real de ordine;
    (daca masterul nu raspunde numarul de ordine este 1.000.000.000 [toate numerele de ordine peste 1 miliard nu se sincronizeaza] si va deveni sa zicem 3241 cand raspunde masterul).

    Si cam asta e in linii mari ... totul tine de imaginatie, prevenirea erorilor si de regulile jocului.
    Bafta
    Dever's Blog - Atentie! dau cu parerea.

  2. #12
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    35


    Implicit

    Mersi Dever!

    Aveti idee si cum ma pot conecta la o alta baza de date, cu un alt user pe un alt server, dintr-o procedura stocata?

    Thanks again!

  3. #13
    Avatarul lui forapathy
    forapathy este deconectat Membru SeoPedia
    Reputatie:
    35
    Data înscrierii
    7th May 2007
    Locaţie
    Iasi
    Vârstă
    40
    Posturi
    212
    Putere Rep
    35


    Implicit

    Citat Postat în original de Federals Vezi Post
    Mersi Dever!

    Aveti idee si cum ma pot conecta la o alta baza de date, cu un alt user pe un alt server, dintr-o procedura stocata?

    Thanks again!
    man vezi ca ti-am mai scris asta odata mai sus.. aia cu example.com ..
    te poti conecta unde vrei tu asa..

    p.s. la ce te referi cand zici procedura stocata.. ca eu unu am chiulit de la orele de informatica din liceu .. ca pe acolo se vorbea cu traduceri de astea.. pointeri.. grafuri..
    Scriu, rar, pe point47 diverse tips&tricks in web-dev.

  4. #14
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    35


    Implicit

    forapathy: o procedura stocata e similara unei functii din limbajele de programare, dar pt baze de date. e atasata unei baze de date si o pot apela din orice (perl, c, php... ). eh, in procedura aia stocata pe care o apelez din php, vreau sa fac operatii pe o alta baza de date dintr-un alt server. deci nu cod php, ci cod sql

  5. #15
    Avatarul lui Dever
    Dever este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    28th July 2006
    Locaţie
    UK
    Vârstă
    44
    Posturi
    378
    Putere Rep
    37


    Implicit

    Federals baga un ochi la Federated Storage Engine (eu pana acum nu am folosit).
    Dever's Blog - Atentie! dau cu parerea.

  6. #16
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    35


    Implicit

    Mersi, am sa vad ce pot sa rezolv cu el!

Pagina 2 din 2 PrimulPrimul 12

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Div-uri sau tabele vs. Google
    De Hobart în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 11
    Ultimul Post: 24th September 2009, 21:56
  2. divuri sau tabele?
    De blueeyesromanesti în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 12
    Ultimul Post: 13th October 2008, 00:42
  3. Ati realizat vreodata un site fara sa folositi tabele?
    De Razvan Pop în forumul Client side
    Răspunsuri: 22
    Ultimul Post: 29th October 2005, 18:04

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •