Zadejte hledaný výraz...

Jak na hromadný import dat – unikátní slug

Filip T.
verified
rating uzivatele
(2 hodnocení)
26. 8. 2014 17:46:00
Zdravím,
jak by jste řešili unikátnost "slug-u" při hromadném importu? ( Web: PHP/Mysql )
Aktuálně mám tabulku ve které shromažďuji veškeré odkazy z webu:
* tedy např.
1 nazev-nejake-stranky / Article:display
2 dalsi-nazev / Blog:view
...
Pokud vytvářím nový " článek / blog / .. " tak volám fci, která mi ověří selectem z DB zda "slug" neexstuje....
Jak to ale udělat při hromadném importu dat?
1. Pokaždé volat fci na ověření existence slugu z DB
* Import může mít ale i tisíce položek, pak by těch dotazů bylo opravdu dost
2. Selectnout všechny slugy a ponechat si je v poli, ověřování pak nebude zbytečně "oběžovat" DB :)
* Tady je ale zase nebezpečí "přetečení" memory_limitu
3. Nic neověřovat a na konec "slugu" vložit např. random řetězec. ( uživatel si to pak bude umset upravit sam )
* Nehezké URL a při velkém počtu položek v importu pochybuji, že by si to uživatel sám upravoval
4. Nějaké jiné řešení?
Děkuji za návrhy i připomínky
26. 8. 2014 17:46:00
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050322
Martin87
verified
rating uzivatele
26. 8. 2014 19:30:19
Ahoj, slug by mel byt UNICATE a ty bys mel pri insertu dat budto IGNORE (pokud nechces vkladat ty co uz tam jsou) a nebo on duplicate key update a pridavat ten random retezec napriklad
26. 8. 2014 19:30:19
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050321
Filip T.
verified
rating uzivatele
(2 hodnocení)
26. 8. 2014 22:13:05
Díky, s vkládáním nemám problém, jde mi spíše o způsob, jak nejlépe ošetřit unikátnost odkazu. ( Tedy co nejjednodušeji )
Co říkáte třeba na vytvoření takové fce přímo v mysql? Otázka zní, zda by to ve finále nebylo pomalejší jak 1. nebo 2. varianta
( https://gist.github.com/389271/2d7f41d7ef09d8042c8251deaa895fc72a4925cd )
26. 8. 2014 22:13:05
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050320
Martin87
verified
rating uzivatele
27. 8. 2014 07:56:03
Vsak to je to co jsem psal, ty potrebujes zachovat unikatnost, coz vyresis UNICATE na sloupec slug a pak pri insertovani pokud jiz zaznam existuje tak muzes treba funkci co jsi posilal nebo jakkoliv pripojit nejaky rozlisovaci retezec...
27. 8. 2014 07:56:03
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050319
Filip T.
verified
rating uzivatele
(2 hodnocení)
27. 8. 2014 08:22:47
omlouvám se, asi jsem se špatně vyjádřil. Unikátnost byla myšlena jako "kdyz udelam insert, tak se tam proste ten radek musi vlozit a byt unikatni ( error "nesmi" probehnout )"
Ddíky, zkusím tedy udělat funkci přímo v mysql a trochu to otestovat.
27. 8. 2014 08:22:47
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050318
Martin87
verified
rating uzivatele
28. 8. 2014 07:54:44
Ale vsak ano :) vzdyt tohle ti to zajisti. pokud mas unicate sloupec a dojde stejna hodnota, tak to zachyti prave to ON DUPLICATE UPDATE a neco s tim udela... treba pomoci te procedury nebo cokoliv, to uz je jedno
28. 8. 2014 07:54:44
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050317
Filip T.
verified
rating uzivatele
(2 hodnocení)
28. 8. 2014 11:07:49
Díky, nakonec vyřešeno přes trigger a vše funguje suprově ;)
28. 8. 2014 11:07:49
https://webtrh.cz/diskuse/jak-na-hromadny-import-dat-unikatni-slug/#reply1050316
Pro odpověď se přihlašte.
Přihlásit