Nachteule: Was genau ist gemeint?

Hallo an alle Nachtschwärmer - vielleicht habe ich ja Glück -
sonst halt an alle Frühaufsteher ;o)

Ich habe folgende Aufgabenstellung erhalten:
Hintergrundinformation, es existiert eine MySql-table mit den Namen city inkl. diverser Variablen.
[...
Aufgabe: implement some kind of caching like 'memcached' for city

/**
 * return all citys of given user ordered by city id
 * @param int $userId
 * @return mixed $list
 */
function getFromUser($userId)
   {
   }

/**
 * return city as array of given user marked as 'main' city
 * @param int $userId
 * @return mixed $city
 */
function getMain($userId)
   {
   }

...]

Was genau würdet Ihr unter dieser Aufgabenstellung verstehen?
Mit memchached lege ich doch die Variablen im Zwischenspeicher auf dem Server ab. Was also soll in der Variable $list bzw. in dem array city zurückgegeben werden?
Jede city enthält ca. 10 Parameter, sollen die einfach in die variable $list geschrieben werden? Das macht doch auch keinen Sinn.

Habe ich da was übersehen, habt Ihr noch andere Ideen die annähernd Sinn machen könnten?

Ich bin gespannt auf Eure Meinungen

Gruß Nachteule

  1. nachdem es sich um eine cachinglösung handeln soll, soll die/der klasse/anwendung/skript (die $ vor den variablen lassen auf php schließen?) sicherstellen dass nicht bei jeder abfrage nach bestimmten werten die datenbank penetriert werden muss.

    bei instanzierung holst du dir also deine cities und hälst sie in einer privaten variablen. (alternativ holst du dir die städte erst bei der ersten abfrage, das wäre eine lazy evaluation) bei jeder abfrage gehts dann auf die internen daten statt auf die db.

    du musst natürlich dran denken die daten in einer form abzuspeichern mittels derer du leicht (=effizient) über eine $userId abfragen kannst.
    (falls noch mehr parameter später gefragt sind lohnt es sich evtl einen internen index zu basteln... kommt auf die menge der daten an.)

    --
    for your security, this text has been encrypted by ROT13 twice.