Eine MySQL-Datenbank-Tabelle ist mittels eines PHP5-Skriptes dahingehend auszuwerten, wie stark bestimmte Überschneidungen zwischen den Datensätzen existieren. Das Ergebnis ist durch Informationen aus einer weiteren Datenbank-Tabelle anzureichern und sortiert als MS Excel-importierbare Tabelle auszugeben.
Mit der Auftragsvergabe erhält der Auftragnehmer Teil-Dumps der relevanten Tabellen sowie telefonisch weitere Erläuterungen.
Das PHP-Skript muss die folgenden (bereits bestehenden) Datenbank-Tabellen effizient abfragen:
Tabelle 1:
Name: "keyphrasesites_possible"
Anzahl Datensätze: real ca. 4.000, im Auftragsdump jedoch weniger.
Relevante Felder: KeyphraseId (PRIMARY)
Tabelle 2:
Name: "index_keyphrases_threshold"
Anzahl Datensätze: real ca. 100.000, im Auftragsdump jedoch weniger.
Relevante Felder:
- KeyphraseId,
- PageId,
- Rating.
Tabelle 3: "keyphrases"
Anzahl Datensätze: real ca. 150.000, im Auftragsdump jedoch weniger.
Relevante Felder:
- KeyphraseId (PRIMARY),
- Keyphrase,
- KpsStatus,
- AvgCpc,
- GlobalMonthly Searches_pp.
Im PHP-Skript sind u.a. die folgenden Konstanten/ Variablen zu benutzen:
- CompareNum=10
- RatingMin=1.5
- NumPages: Array, das die Anzahl der in Schritt 1.1. je Keyphrase gefundenen Datensätze enthält.
Das PHP-Skript muss die folgenden Informationen abfragen, um die geforderte Ausgabe zu erzeugen:
1. (Welche Pages matchen am besten zu welchen Keyphrases:) Für jede KeyphraseId, die in der Datenbank-Tabelle keyphrasesites_possible existiert:
1.1. Selektiere aus der Tabelle index_keyphrases_threshold (!) alle *Datensätze*, deren Rating mindestens [RatingMin] beträgt.
1.2. Speichere in einem Array "NumPages" *für jede KeyphraseId* die Anzahl der in Schritt 1.1. gefundenen Datensätze, deren Rating mindestens [RatingMin] beträgt (wird in Schritt 3.1. benötigt).
1.3. Speichere (z.B. in einem weiteren Array) von den in Schritt 1.1. selektierten Datensätzen (für jeden Datensatz) diejenigen [CompareNum] Datensätze mit dem höchsten Rating. Ergebnis muss ein/e Tabelle/Array sein, wie sie/es im Anhang "Beispiel-Tabellen" beispielhaft als "Keyphrases2Pages" zu finden ist.
2. (Wie stark überschneiden sich die Keyphrases2Pages-Matchings): Für jede KeyphraseId aus der/m in Schritt 1. ermittelten Tabelle/ Array "Keyphrases2Pages": Ermittle die Schnittmengen mit jeder anderen KeyphraseId in folgender Hinsicht: Wieviele PageIds matchen gemäß "Keyphrases2Pages" sowohl zur KeyphraseId x als auch zur KeyphraseId y?
Ergebnis muss ein/e Tabelle/Array sein, wie sie im Anhang "Beispiel-Tabellen" beispielhaft als "Keyphrases2PagesÜberschneidungen" zu finden ist.
3. Reichere die/das in Schritt 2. ermittelte/n Tabelle/ Array "Keyphrases2PagesÜberschneidungen" um weitere Informationen an und gib das Ergebnis sortiert als MS Excel-importierbare Tabelle aus:
3.1. Füge jeder KeyphraseId gem. der Datenbank-Tabelle keyphrases hinzu:
- in der Spalte die zugehörige Keyphrase,
- in der Zeile die/den zugehörige/n
+ Keyphrase,
+ KpsStatus,
+ NumPages (gem. Schritt 1.2.),
+ AvgCpc,
+ GlobalMonthly Searches_pp.
3.2. Sortiere die in Schritt 3.1. entstandene Tabelle so, dass diejenige (die zweite) Zeile, die die Keyphrase als Spaltenüberschrift enthält, (von links nach rechts) alphabetisch sortiert ist.
Ergebnis muss eine in Excel importierbare, sortierte Tabelle in der Anordnung sein, wie sie im Anhang "Beispiel-Tabellen" beispielhaft als "Ausgabe" zu sehen ist, möglichst als csv-Datei. Hinweis: Abgesehen von den Zeilen- und Spaltenüberschriften wird die Tabelle genauso viele Zeilen wie Spalten enthalten.
Bitte beachten: Ausschlaggebend für die Vergabe dieses Auftrages wird nicht nur der Angebotspreis sein, sondern vor allem Ihre bisherigen myhammer-Bewertungen und MySQL/PHP-Erfahrungen. Sofern die Abwicklung reibungslos verläuft, sind weitere Aufträge ähnlicher Art geplant.
Archiv für EDV, Telekommunikation