| | | | |
| | |
| Neuer Benutzer Registriert seit: 23.12.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Hallo zusammen, ich bin gerade dabei Teile einer existierenden DB in das EAV-Model umzuwandeln und ärgere mich schon seit Tagen mit den ewigst langen JOIN Abfragen rum. Meine Tabellenstruktur sieht aus wie die Grafik auf dieser Seite unter dem Punkt "Speicherung unterschiedlicher Datentypen" http://www.informave.org/de/database...esign_eav.html Weiters wären dort auch kleine Beispielauszüge aufgelistet, mit denen man in Kombination mit der Grafik jedoch leider nichts anfangen kann (zumindest ich nicht). Ich war jetzt mal so weit, dass ich diese Query absende (ich will 3 Werte - Produkt-ID, Preis und Bild): PHP-Code: products_id , products_price, products_image 102, NULL, 31U1Kc9aUHL._SL500_AA300_.jpg 102 ,88.7850, NULL ... ist mir durch diese Abfrage auch ganz klar warum und wieso, nur weiß jemand von euch einen einfacheren Weg die Attribute in einer Zeile gesammelt zu erhalten bzw. gibt es eine Möglichkeit alle Zeilen nach der ID so zu gruppieren, dass alle gewünschten Attribute in einer Zeile stehen wie z.B. products_id , products_price, products_image 102, 88.7850, 31U1Kc9aUHL._SL500_AA300_.jpg Falls euch die Grafik in Kombination mit meiner Query durch die unterschiedlichen Bezeichnungen verwirrt, bastel ich selbst noch schnell ein UML zusammen. zZ hab ichs bei einfacheren Abfragen mal ganz hässlich gelöst und alles im Nachhinein in Arrays abgespeichert mit IF-Abfragen ob der Wert nicht NULL ist, aber das kann es auch nicht sein, komplexere Abfragen sind damit nicht zu bewältigen.. ich hoffe ihr könnt mir hier weiterhelfen! |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Neuer Benutzer Registriert seit: 23.12.2009
Beiträge: 6
PHP-Kenntnisse: Fortgeschritten ![]() | Super, danke, klappt einwandfrei! Es war mir bei diesem Modell schon von Anfang an klar dass das ganze performancemäßig ziemlich in die Knie gehen wird, aber ansehen muss ichs mir im Rahmen meines Projekts trotzdem.. dass das auch Magento's Laster ist ist mir natürlich auch klar, Cache kommt bei mir in Schritt 2 auch noch dazu, in Schritt 3 geh ich dann weiter zu Key-Value Stores um dann evaluieren zu können was wie wo usw. um mein Paper schön füllen zu können, auch wenn ich letztendlich zu dem Ergebnis kommen könnte dass das alles wenig Sinn hat. Nochmals danke für deine Hilfe, alleine hätt ich dafür wohl noch eine ganze Weile gebraucht! |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() | Zugegeben ist Magento ziemlich langsam - Aber nicht aufgrund seiner Datenstruktur. Das Problem ist das Auslesen der Daten mittels einem riesigen OOP-Overhead. In unserem Unternehmen haben wir das in native SQL-Statements umgewandelt und es hat einen enormen Geschwindigkeitszuwachs gebracht. EAV an sich ist in meinen Augen ein super Prinzip. |
| | |
| | |
| Neuer Benutzer Registriert seit: 17.11.2010
Beiträge: 1
PHP-Kenntnisse: Fortgeschritten ![]() | Auch wenn der Thread schon etwas älter ist. Ich bin grad drüber gestolpert und möchte kurz was zu sagen. Magento hat zwei Probleme: EAV-Modell UND sein OOP-Overhead. Das erste haben sie in neueren Versionen durch "flat-tables" gelindert, das zweite versucht durch caching in den Griff zu bekommen. Richtig kritisch wird es erst bei höheren Produkt-Mengen. Bei 100 Produkte und 30 Attributen ist EAV toll. Und auch der OOP-Overhead nicht das Problem. Aber wehe du hast 150.000 Produkte und 400 Attribute (vielleicht 60 Produktattribute). Wenn du dann noch mehr als einen Store in Magento hast, dann sind die Joins um die Daten eines einzigen Produkts abzufragen riesig. Und lade mal 20.000 Produkte per OOP in den Speicher. Da reichen dann 200 MB für einen PHP-Thread nicht mehr aus. |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem mit Mysql Left Join Ambfrage | pro-tech | Datenbanken | 11 | 22.05.2010 10:59 |
| [Erledigt] left join problem | Bernd-m | Datenbanken | 9 | 24.08.2009 13:52 |
| [Erledigt] MYSQL JOIN Problem | Sonatic | Datenbanken | 4 | 28.05.2009 12:36 |
| [Erledigt] Left Join Problem | scheffie | Datenbanken | 7 | 04.05.2009 22:15 |
| Persistence Framework | #Avedo | Software-Design | 37 | 28.03.2009 17:32 |
| Problem mit MySQL Select Statement | Hagbard-Celine | Datenbanken | 5 | 25.03.2009 15:32 |
| Problem mit INNER JOIN | #Avedo | Datenbanken | 7 | 26.01.2009 10:42 |
| [Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen | taurus | Datenbanken | 20 | 01.12.2008 10:49 |
| join array output Problem | Rilana | PHP Tipps 2008 | 3 | 17.11.2008 10:47 |
| Select Problem | Datenbanken | 17 | 16.01.2006 21:54 | |
| sql-Abfrage inner join - unerklärliches Problem | havok | Datenbanken | 6 | 17.10.2005 14:32 |
| Join Problem | Simon9990 | PHP Tipps 2005-2 | 1 | 21.07.2005 22:15 |
| [Erledigt] Problem mit JOIN | Datenbanken | 7 | 27.08.2004 16:00 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| eav modell, eav model joins, eav mysql select, eav model, eav where abfrage, eav php, eav mysql, php eav, eav_attribute checkbox, datenbank eav, datenbank eav modell, mysql eav join, mysql eav select, eav produkt datenbank, joins modell, eav modell beispiel, magento join product eav attribute, arrays in eav, eav model datenbank beispiel tabelle, in eav db performant values abfragen |