2 Stimmen

Schienen - effiziente Auswahl eines Objekts mit einer ID, die nicht in einer bekannten Menge enthalten ist

Ich baue einen Gruppenblog auf, der von der Gemeinschaft moderiert wird. Wenn ein Benutzer den moderate Seite wird ihm ein zufälliger Beitrag vorgelegt, den er noch nicht moderiert hat, und er wird gefragt, ob der Beitrag erscheinen soll oder nicht.

Die relevanten Objekte sind also Post , User y Moderation . A Moderation hat eine post_id und eine user_id . Ich möchte einen Beitrag aus dem Set finden Post.all wo es keine Moderation Objekt, das diesem Beitrag und dem aktuellen Benutzer entspricht.

Wie lässt sich dies am effizientesten bewerkstelligen? I podría alle Moderationen für diesen Benutzer abrufen, und dann mit map um alle Beiträge zu erhalten, die der Benutzer moderiert hat, und dann die Beitragsdatenbank wie folgt abzufragen (Pseudocode) Post.find(:conditions => "id != [list of posts already moderated]) aber ich befürchte, dass das zu langsam sein könnte? Gibt es einen schnelleren Weg?

Wäre es außerdem eine gute Idee, dies irgendwie zwischenzuspeichern? Vielleicht indem man alle Beiträge, die nicht moderiert wurden, abruft und irgendwo speichert, und dann bei zukünftigen Aufrufen der moderate Methode gemacht werden, diesen Cache zuerst überprüfen und einen Beitrag ausliefern (und diesen Beitrag aus dem Cache entfernen), und erst wieder nach weiteren Beiträgen suchen, wenn der Cache leer ist?

Vielen Dank für Ihre Hilfe!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X