Tach!
Man kann auch die Dokumentation der verwendeten Systeme lesen und die eigene Erwartungshaltung nicht als das Maß der Dinge ansehen.
Aha. Und wenn das DBMS gewechselt wird muss auch über die Programmlogik neu nachgedacht werden?
Nach meinem Dafürhalten selbstverständlich, zumindest in den vom Wechsel betroffenen Teilen. Derjenige, der den Wechsel vornimmt, sollte Erfahrung mit beiden Systeme haben, somit auch die Unterschiede kennen und daraus schließen, dass es nicht damit getan sein kann, nur die Connection-Daten zu ändern. Das wäre sonst ziemlich blauäugig und geht selbst beim Versionswechsel innerhalb desselben Produkts nicht unbedingt völlig reibungslos. Wenn man keinen vereinheitlichenden ORM verwendet, muss man ja nicht nur die Namen der zum jeweiligen System gehörenden API-Funktionen ändern, sondern auch die unterschiedlichen Arbeitsweisen berücksichtigen. Das wäre übrigens eine recht einfache Lösung für das Problem: der ORM gleicht die Unterschiede aus. Das hat natürlich auch seinen Preis, beispielsweise bei der Performance.
Hat man sein System ordentlich strukturiert, fällt es auch nicht allzu schwer, die wesentlichen Teile der Geschäftslogik, die sich nicht auf das Speichern und Laden von Daten beziehen, unangetastet zu lassen. Unit-Tests können zudem sicherstellen, dass die geänderten Teile an ihren Schnittstellen zum restlichen System wie erwartet funktionieren.
Der Wechsel erfolgt meist auch nicht ohne Grund. Wenn es nicht gerade um Kosten, Lizenzformen, persönliche Gründe oder ähnliche fachfremde Dinge geht, wechselt man nach meinem Dafürhalten vor allem, weil man bestimmte andere Leistungsmerkmale und/oder Verhaltensweisen haben möchte. Selbstverständlich muss man sich da an neue Gegebenheiten anpassen.
Sorry. Ich wollte nur zeigen, dass die Verwendung von 0 für "nicht gewählten User" (es kann auch jede andere Art indizierter Liste sein) keine "stets gute" Idee ist und dass man auf einem anderen Weg von vorn herein künftige und schwer vorhersehbare Probleme vermeiden kann.
Da ist kein Sorry notwendig, das ist meinerseits kein persönliches Ding. Ich sehe nur nicht den gesteigerten fachlichen Nutzen in dieser Empfehlung. Die Empfehlung bezieht sich auf einen anderen nicht näher spezifizierten Kontext und kann deshalb auch nicht die wirklichen kontextspezifischen Probleme für den nicht näher bekannten vorliegenden Fall aufzeigen. Stattdessen führt sie Punkte an, die nur möglicherweise aber auch gar nicht zutreffen müssen. Und sie droht mit zukünftigen Problemen, auch wenn das vielleicht nicht als Drohung gemeint war. Die pauschale Gültigkeit, die die Empfehlung meines Erachtens herüberzubringen versucht, ist das was ich zu widerlegen versuche.
Die Weitergabe gesammelter Erfahrungen und Wissens ist ja nichts grundlegend Verkehrtes. Nur sollte man diese Erfahrungen und das Wissen nicht pauschal verwenden, sondern sie mit den konkreten Umständen der jeweiligen Anforderung abgleichen.
dedlfix.