Wow....hier gehts ja richtig ab
Es geht bei den "Accounts" nicht um Anmeldenamen oder dergleichen. Es sind einfach nur verschiedenste Daten(Mailaccount, Kostenstelle, Windowsaccount, Telefonaccount....) in einer Tabelle "Account", die durch eine "Labeltyp"-Spalte kategorisiert sind.
Die Idee mit der zusätzlichen Spalte hatte ich auch schon, allerdings bin ich kein Freund von zusätzlicher Datenhaltung, nur um ein logisches Problem (hier die Eindeutigkeit) zu erschlagen.
In ein paar Monaten ändert sich das Eindeutigkeitskriterium und schwups braucht man wieder ne neue Spalte.
Fehlerbehandlung gehört auf die Applicationsseite - keine Frage. Nur bin ich der Meinung das die Absicherung von Datenkonsistenz (auch mit erweiterten Anforderungen wie hier) in die Datenbank bzw direkt auf die Tabelle gehören, für die sie gelten sollen.
Wozu gibts sonst überhaupt den "Constraint"-Register bei der Tabellenverwaltung zum Beispiel um ein "unique" zu setzen?!
Eben deshalb, damit ich diese Kriterien an einer zentralen Stelle definiere und somit überschaubar halte und nicht in der gesamten Anwendung verteile.
Ist meine Meinung - sicher aber ein Frage der Sichtweise.
Zum genannten Vorschlag "View" ist zu sagen, dass für den View das gleiche gilt, wie für die geblockte Tabelle während der Transaktion.
Was mir am besten gefällt ist der Vorschlag von BamBam bzgl "function based index". Das meinte ich mit der Frage, ob man das "unique" nicht irgendwo genauer spezifizieren kann. Defaultmäßig unterscheidet "unique" ja leider zwischen Groß- und Kleinschreibung.
Leider habe ich das "create unique index name_upper_idx on account(upper(name));" nicht verstanden BamBam
Was macht das genau? Kannst Du ein paar erklärende Sätze abgeben evtl ein Beispiel der Wirkung? Bitte möglichst einfach - bin kein Expert
Eine letzte Idee, die mir gestern Abend kam, nachdem mir mein Handy beim rauchen vom Balkon gefallen ist (5.Stock).
Wie wäre es mit nem "after update" Trigger (dann kann ich nämlich die Tabelle wieder abfragen) der ein Rollback durchführt. Hab mal was von "atomic" in dem Zusammenhang gelesen, um direkt auf den letzten Step zu verweisen?!