Dedicated Post-Meta-Feld vs Anzahl der Meta-Felder

Ich arbeite an der Integration eines Posts wie Count zu meinem Plugin. Ich habe Probleme, die Logik zu verstehen, die sich auf die performance auswirkt. Ich habe diesen Beitrag gefunden , der das Thema etwas berührt.

Ich behalte die Zählung, die IP des Benutzers, der den Pfosten mochte, und das Datum im Auge.

Scenerio Eins

+---------+---------+-------------+--------------------------------------------------------+ | col1 | col2 | col3 | col4 | +---------+---------+-------------+--------------------------------------------------------+ | meta id | post_id | meta_key | meta_value | | 33 | 294 | _like_count | array( 'count' => 25, 'date_modified' => '11-20-2017') | | 34 | 294 | _user_ip | 192.168.1.1 | | 35 | 294 | _user_ip | 192.168.1.21 | +---------+---------+-------------+--------------------------------------------------------+ 

Ich verstehe, dass WordPress Arrays nicht speichert, es ist nur um den Punkt zu veranschaulichen

Szenario zwei

 +---------+---------+------------+----------------------------------------------------------------------+ | col1 | col2 | col3 | col4 | +---------+---------+------------+----------------------------------------------------------------------+ | meta id | post_id | meta_key | meta_value | | 33 | 294 | _post_like | array( 'ip_address' => 192.168.1.1, 'date_modified' => '11-20-2017') | | 34 | 294 | _post_like | array( 'ip_address' => 192.168.1.2, 'date_modified' => '11-20-2017') | | 35 | 294 | _post_like | array( 'ip_address' => 192.168.1.5, 'date_modified' => '11-20-2017') | +---------+---------+------------+----------------------------------------------------------------------+ 

Drittes Szenario

 +---------+---------+----------------------+--------------------------------------------------------+ | col1 | col2 | col3 | col4 | +---------+---------+----------------------+--------------------------------------------------------+ | meta id | post_id | meta_key | meta_value | | 33 | 294 | _post_like_count | array( 'count' => 25, 'date_modified' => '11-20-2017') | | 34 | 294 | _post_like_addresses | array( 192.168.1.2, 192.168.1.3, 192.168.1.5) | +---------+---------+----------------------+--------------------------------------------------------+ 

Meine Frage ist, sollte ich die Post-Zählung in einem separaten Meta-Feld halten, wie in Szenario 1 dargestellt, und es jedes Mal aktualisieren, wenn ein Datensatz hinzugefügt wird?

Wenn ich diese Methode verwende, müsste ich noch jeden Datensatz mit dem Meta_key user_ip durchlaufen und nach der IP-Adresse des Benutzers suchen, um sicherzustellen, dass sie den Beitrag nicht schon mögen.

Oder sollte ich Meta-Feld mit dem Schlüssel _post_like und die IP-Adresse und das Datum als Wert speichern, dann nur eine Abfrage ausführen, um zu sehen, wie viele Datensätze mit diesem Schlüssel für diesen Beitrag vorhanden ist, und während der Abfrage auch die IP-Adresse zurückgeben?

Zuletzt, in Szenario drei, speichere ich die Nachzählung in einer Reihe, dann in einer anderen Reihe von IP-Adressen. Ich denke, das ist der beste Weg, weil ich die database nur zweimal für jeden Beitrag abfragen werde. Aber wie lange kann das Array erhalten, bevor es die performance beeinträchtigt?

 $count = get_post_meta( $post_id, "_post_like_count" ); // like count single field $count = new WP_Query( array('_post_like' => '%') ); //query to count the number of records with the key for post X 

Dies wird letztendlich dazu verwendet, den Post in einem feedartigen Stil anzuzeigen, wo er innerhalb einer Schleife läuft, der aktuelle Benutzer, wenn er den Post schon mag, kann es nicht wieder mögen, so dass ich immer die IP verfolgen muss.

Solutions Collecting From Web of "Dedicated Post-Meta-Feld vs Anzahl der Meta-Felder"