Chyba poświęcę cały dział dla CMSMS.
1. (nie)-zdecydowanie?
/**
* Insert the content in the db
:TODO: This function should return something
*/
2. Polecam zagłębić się w sposób obsługiwania hierarchii.
Model Content ma ku temu kilka właściwości: parent_id, hierarchy, id_hierarchy, hierarchy_path. O ile parent_id i id_hierarchy to rozwiązanie w postaci ścieżki zmaterializowanej, to reszta jest absolutnym nadmiarem.
hierarchy_path to ścieżka aliasów - może być, żeby zminimalizować lookup do bazy, ale nonses przy użyciu ORM-a z instance poolingiem.
Kompletnym nieporozumieniem jest kolumna hierarchy - zawiera index wpisu w hierarchii. Każda zmiana kolejności, miejsca w hierarchii jakiegokolwiek elementu wymaga przeliczenia indexów. Co gorsza pole hierarchy jest używane przez frontend do wybierania elementów podrzędnych. Toteż dwa rekordy z identyczną zawartością hierarchy powodują błędy wyświetlania. W moim przypadku kategoria bluzy zawierała również produkty z kategorii t-shirty.
Nie miałbym żadnych zastrzeżeń, gdyby:
- oprogramowanie miało jakiekolwiek end-user api
- baza danych posiadała by odpowiednie procedury lub triggery
- autorzy dowiedzieli się, czym są indexy unique (i klucze główne)
W tej chwili wynajduję funkcje "naprawiające" content i przepisuję je do mojego api w python, aby integracja przebiegała sprawnie.
niedziela, 1 marca 2009
Subskrybuj:
Komentarze do posta (Atom)

0 komentarzy:
Prześlij komentarz