Schlüssel sind Gegenstände, Gegenstände gehören in die item-Tabelle. Warum eine zusätzliche Tabelle, wenns die item-Tabelle genauso tut? Das kann man prinzipiell auf die Spitze treiben und sogar die Waffen aus den Accounts nehmen und dorthin verschieben. Ich bin sogar soweit gegangen, dass sogar das Gold ein Item ist.
Vorteile? Vor allem das Verschieben von Gegenständen ist einfach - man kann damit elegant den Transferbug ("Verlorenes Update") umschiffen. Man kann einfach fehlende Schlüssel erkennen und sie Ersetzen. Und einfach einzelne Schlüssel ansprechen.
Was soll dir ein Array bringen? Arrays sind keine Wunderlösung, vor allem nicht mit MySQL zusammen (Wenn, dann eher mit PostGres, das scheint Arrays zu unterstützen). Arrays sind unflexible Strings und werden schnell unnötig gross. Wozu ein Array mit 20 Schlüsseln laden, wenn man sowieso nur einen braucht? Wozu ein Array eines Schlüssels laden, um nur einen Wert zu ändern?
Die Arrays, die in der Account-Table sind, sind mehr "Logs". Man braucht sie eigentlich nur einmalig (sieht man vom buff-Feld ab). Der grosse Unterschied dieser Werte zu Einladungen oder Schlüssel ist aber: Man braucht sie nur innerhalb des Accounts und nicht accountübergreifend - sie müssen also nicht flexibel sein. Schlüssel, die ja zwei Zugehörigkeiten haben (Besitzer und Haus), schon.
|