Open rrd108 opened 9 years ago
soknak tünik a vizsgálatok száma. 150 contact esetében kb 11000, 200 contactnál 19900. Nekem most 310 contact van a telefonomban, ami 47895 vizsgálatot jelentene.
Akkor szerintem marad az amit legelőször gondoltam, de később elvetettem. Új adat bevitelnél vagy adat módosításnál elindítunk egy másik szálon egy shell scriptet ami konkrétan a változásra vizsgál duplikációt. Ezt a ContactsTable setGeo metódusa is csinálja, jól megy, a user nem lát belőle semmit, nem lassít semmit, a háttérben történik.
inner joinnal filedenként 1 lekérdezéssel megoldható, már csak külön kell szedni amikor az egyezés ugyanahhoz a userhez tartozik és amikor nem
A CRM-ek egyik fontos szolgáltatása a duplikáció szűrés. Ez több dolog miatt is problémás: egyrészt más formátumban megadott adatok pl 06/30 vagy +36 30 egy telefonszámnál, másrészt amiatt, hogy egy kapcsolatot több kapcsolattartó is felvihet és nem feltétlenül látnak rá egymás adataira.
Az első problémakörre általánosan alkalmazott megoldások kikényszerítik, hogy egy adott formátumban legyenek felvíve az adatok amit én nem szeretek. A magam részéről jobban szeretem ha a program okos és megeszik mindent amit a user bekalapál.
Na szóval a /src/Model/Table/ContactsTable.php tartalmaz egy pár metódust amelyek nevei checkDuplicates-cel kezdődnek. Ezeket kéne átpakolni a /src/Shell/DuplicateFilterShell.php fileba mert menet közben rájöttem, hogy ezt úgy is cronnal fogjuk csekkolni naponta.
5/1. A nagyobb id-jű contatnál az active flag-et 0-ra kell állítani és a commentbe bele kell írni, hogy merged with: a kisebb id-jű contact. Azaz ő az aki beleolvad a másikba.
5/2. A megszűnő skilljeit, group tagságait és history rekordjait update-elni kell a megmaradó contact_id-re.
5/3. A személes adatok esetében (ezek vannak a contacts táblában) a megszűnő contat adatait bele kell olvasztani a megmaradóba. Azaz ha pl a telefonszám egyezik akkor nem csinálunk semmit, ha a megmaradónál hiányzik az infó a megszűnőnél megvan akkor meg beleírjuk.
5/4 Ha konfliktus van, azaz pl mindkettőnél szerepel telefonszám, de az nem azonos (formátumtól függetlenül, azaz más telefonszám szerepel) akkor a megszűnő adatát a commentbe kell beleírni. Persze ezek minden adatra vonatkoznak nem csak a telefonszámra.
5/5 a historyban lehetnek duplikált adományok - erre külön figyelni kell