Verwendetes Datenbanksystem: aktuell SQlite
Hallo,
ich verzweifle gerade etwas.
ich benötige eine embedded DB welche FK und PK unterstützt und sich automatisch löschen bzw. updaten lässt.
also autoupdate und autodelete der FK-abhängigen Tabelle bei Änderungen.
SQlite funktioniert nur mit triggern. diese sollen aber nicht verwendet werden. Leider unterstützt SQlite keine FK in diesem Sinne.
Zitat:" SQLite unterstützt standartmäßig keine FOREIGN KEYS (Fremdschlüssel). Man kann diese zwar bei erstellen von Tabellen definieren, jedoch werden diese, wie gesagt, ignoriert."
Quelle: SQLite Foreign Keys erzwingen – GlossarWiki
Kann mir hier jemand helfen??
Die DB soll in ein C# WPF programm eingebettet werden, also teil von dem Programm sein und nicht zusätzlich installiert werden müssen, wie MySQL oder SQL-Server, ect.
Es gibt genau zwei weit verbreitete, aktuelle Embedded SQL Produkte:
Vielleicht gibts noch irgendwelche hidden projects, das mag sein.
Aber ansonsten: leider gibts so ein Einhorn nicht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Es gibt auch noch Firebird (Datenbank) (u.a. als embedded): Firebird
Man benötigt dafür dann den zugehörigen .NET Provider.
Sowohl PK als auch FK sollte unterstützt sein: CREATE TABLE als auch Keys and unique indices
Edit: Als Schnelleinstieg: Embedded Firebird: Full-Featured Embedded Database with 2 MB Runtime (auch wenn die dort verwendeten Versionen veraltet sind)
Also habe ich tatsächlich in C# keine andere Möglichkeit als mit SQLite zu arbeiten.
was ist denn dieser .net Provider?
Das hat mit C# oder .NET nichts zutun, das geht Dir mit anderen Runtimes auch so.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
hm, ok..
also laut meinem Chef soll es da wohl etwas geben. nur er sagt mir nicht was das für eine ist.
er meinte nur, ich soll da mal suchen, mit welcher embedded DB das möglich ist.
Toller Chef 😁 Netter Time-waste.
Kommt wahrscheinlich am Ende was raus, das uralt ist oder gar keine Datenbank ist.
Würde mich nicht wundern.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Also habe ich tatsächlich in C# keine andere Möglichkeit als mit SQLite zu arbeiten.
@Nexmo: Was hast du denn an meiner Antwort nicht verstanden?
was ist denn dieser .net Provider?
Das ist der Datenbank-Treiber für .NET (man braucht dann nur die zugehörigen DLLs und die Datenbankdatei in das Release-Verzeichnis kopieren, so daß du dieses en-block weitergeben kannst - ohne Installation beim Anwender).
Auch für SQLite bräuchtest du den passenden .NET Provider.
Ich bin zwar nicht in der Datenbankentwicklung, aber bei uns wird VistaDB Database Engine verwendet.