Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Primary key nicht vorhanden (https://www.delphipraxis.net/217177-primary-key-nicht-vorhanden.html)

bernhard_LA 15. Mai 2025 09:00

Datenbank: MSSQL • Version: 12 • Zugriff über: FIREDAC

Primary key nicht vorhanden
 
Muss eine Datenbank einen Primary Key besitzen, um einen Multi-User- und parallelen Zugriff zu ermöglichen?


Ich habe eine entsprechende Fehlermeldung für meine Datenbank erhalten, die keinen Primary Key definiert hat.

Jasocul 15. Mai 2025 09:17

AW: Primary key nicht vorhanden
 
Eine Datenbank hat keinen PK.
Vermutlich geht es nur um eine Tabelle innerhalb der Datenbank.

Um deine Frage in diesem Sinn zu beantworten:
Für Multi-User und/oder parallelen Zugriff ist ein PK für eine Tabelle nicht erforderlich.

haentschman 15. Mai 2025 09:57

AW: Primary key nicht vorhanden
 
Zitat:

Für Multi-User und/oder parallelen Zugriff ist ein PK für eine Tabelle nicht erforderlich.
...aber JEDE Tabelle muß grundsätzlich einen haben. :warn: Wenn nicht, hat der Datenbankfuzzi den Beruf verfehlt...:zwinker:
Zitat:

Ich habe eine entsprechende Fehlermeldung für meine Datenbank erhalten, die keinen Primary Key definiert hat.
...kann aber auch sein, daß ein Update z.B. nicht ausgeführt werden kann, weil keine Eindeutigkeit besteht...oder so. :wink:

Sinspin 15. Mai 2025 10:12

AW: Primary key nicht vorhanden
 
Das hängt sicherlich von der verwendeten DB ab ob ein Primary Key zwingend erforderlich ist. Generell halte ich es für ein fragwürdiges Design wenn Tabellen ohne Keys betrieben werden.
Interessant wäre mal ob es DB gibt die keine expliziten Keys brauchen sondern alle Felder in allen Kombinationen automatisch indexiert sind.

Hatte im Studium mal eine Firma besucht die sich auf "read as fast as you can" DB spezialisert haben.

Uwe Raabe 15. Mai 2025 10:25

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von bernhard_LA (Beitrag 1548629)
Ich habe eine entsprechende Fehlermeldung für meine Datenbank erhalten, die keinen Primary Key definiert hat.

Kannst du das Szenario etwas genauer beschreiben? Ich weiß, dass FireDAC unter bestimmten Bedingungen einen PK voraussetzt.

Das lässt sich zwar dann auch umgehen, macht aber die bereits vehement geäußerte Forderung nach einen PK nicht weniger wichtig.

Es fördert allerdings das Verständnis für die Interna von FireDAC, wenn man die wirkliche Ursache ergründet.

himitsu 15. Mai 2025 10:28

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von haentschman (Beitrag 1548632)
...aber JEDE Tabelle muß grundsätzlich einen haben. :warn: Wenn nicht, hat der Datenbankfuzzi den Beruf verfehlt...:zwinker:

Müssen muß nichts.

Wenn kein Zugriff auf Einzelnes und Doppeltes egal und keine Sortierung nötig, wozu soll dann der Index gut sein?
z.B. einer LoggingTabelle, die schnell gefüllt werden muß, dann bremst der Index auch.

Jasocul 15. Mai 2025 12:51

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von haentschman (Beitrag 1548632)
Zitat:

Für Multi-User und/oder parallelen Zugriff ist ein PK für eine Tabelle nicht erforderlich.
...aber JEDE Tabelle muß grundsätzlich einen haben. :warn: Wenn nicht, hat der Datenbankfuzzi den Beruf verfehlt...:zwinker:

Ich habe die Frage im Sinne des Problems beantwortet.
Und wie Himitsu bereits schrieb, ist auch bei gutem DB-Design nicht immer ein Key/Primary Key erfoderlich oder sinnvoll.

TurboMagic 17. Mai 2025 15:35

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von Jasocul (Beitrag 1548642)
Zitat:

Zitat von haentschman (Beitrag 1548632)
Zitat:

Für Multi-User und/oder parallelen Zugriff ist ein PK für eine Tabelle nicht erforderlich.
...aber JEDE Tabelle muß grundsätzlich einen haben. :warn: Wenn nicht, hat der Datenbankfuzzi den Beruf verfehlt...:zwinker:

Ich habe die Frage im Sinne des Problems beantwortet.
Und wie Himitsu bereits schrieb, ist auch bei gutem DB-Design nicht immer ein Key/Primary Key erfoderlich oder sinnvoll.

Richtig, da gebe ich euch recht. Gerade für Fälle wo jemand nur die zuletzt eingegebenen Ortsnamen oder so
in der DB speichern will um beim nächsten Aufruf des DIalogs gleich Vorschlagswerte für den Ort anzubieten
muss man keinen PK haben.

Aber meiner Meinung nach betrifft das so ca. <= 1% der Anwendungsfälle von Tabellen.

joachimd 18. Mai 2025 09:42

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von TurboMagic (Beitrag 1548656)
Richtig, da gebe ich euch recht. Gerade für Fälle wo jemand nur die zuletzt eingegebenen Ortsnamen oder so
in der DB speichern will um beim nächsten Aufruf des DIalogs gleich Vorschlagswerte für den Ort anzubieten
muss man keinen PK haben.

...und spätestens bei der Löschung von Dubletten hast du wieder ein Problem...

TurboMagic 18. Mai 2025 14:00

AW: Primary key nicht vorhanden
 
Zitat:

Zitat von joachimd (Beitrag 1548661)
Zitat:

Zitat von TurboMagic (Beitrag 1548656)
Richtig, da gebe ich euch recht. Gerade für Fälle wo jemand nur die zuletzt eingegebenen Ortsnamen oder so
in der DB speichern will um beim nächsten Aufruf des DIalogs gleich Vorschlagswerte für den Ort anzubieten
muss man keinen PK haben.

...und spätestens bei der Löschung von Dubletten hast du wieder ein Problem...

Ja, aber: man baut so eine Lookup Liste ja auch so auf, dass es nicht zu Doubletten kommt ;-)
Vorher prüfen, ob der Vorschlagswert schon vorhanden ist und nur wenn nicht dann speichern ;-)

Wie gesagt: in > 99,5% der Fälle sollte man einen key haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz