none
GUID als Primärschlüssel RRS feed

  • Frage

  • Hallo Leute,

    bin gerade beim testen von ASP.NET Core und SQL.
    Derzeit sind die Primärschlüssel als INT deklariert.

    Ich möchte aber auf GUID umstellen.
    Kann mir jemand verraten welchen Datentyp ich da am Besten in SQL verwende?

    Gibt es etwas (außer der Lesbarkeit) was gegen GUID spricht?

    Danke
    Paul

    Mittwoch, 13. September 2017 07:38

Antworten

  • Hallo Paul,

    ich persönlich arbeite lieber mit INT. Letztendlich ist es aber Geschmackssache.

    Vorteil bei GUID (uniqueidentifier in SQL) ist bspw., dass es keine aufsteigenden Zahlenfolgen gibt, durch die ein potentieller Angreifer einfach mal alle möglichen ID Werte durchprobiert. Klar würde das auch bei GUID gehen aber es ist unwahrscheinlich, dass man damit schnell Erfolg hat. (Interessiert aber eh nur, wenn die Anwendung nicht richtig abgesichert ist)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 13. September 2017 07:57
    Moderator
  • Hallo Paul,

    für Useraccounts und Felder ohne Inkrement nutze ich gern Guid diese speichere ich aber einfach als string in der DB. Sonst nutze ich auch nur Int. Grade wegen der aufsteigenden Zahlenfolge finde ich das sehr praktisch


    Gruß Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Cross Platform Canvas for UWP, Android, iOS

    UWP Community Toolkit Sample App

    Alle Größenangaben in UWP müssen durch 4 teilbar sein


    Mittwoch, 13. September 2017 08:08
  • Hallo Paul,
    das Problem des GUID als CLUSTERED INDEX wurde von Uwe Ricken hier beschrieben:
    http://www.db-berater.de/2015/04/guid-vs-intidentity-als-clustered-key-2/

    Hast du viel Daten, ist das ein Punkt. Sonst scheint das einfach nur etwas zu sein was man festlegen muss.
    Für Systeme bei denen offline Daten erfasst werden kann das die erste Wahl sein.

    Aber merkst Du Dir freiwillig lieber eine GUID statt einem int wenn Du eine SQL tippen möchtest?

    OT: Einen schönen Beitrag zur Frage  Clustered oder HEAP fand ich den hier: 
    http://kejser.org/clustered-indexes-vs-heaps/

    Grüße Alexander

    Samstag, 16. September 2017 08:36

Alle Antworten

  • Hallo Paul,

    ich persönlich arbeite lieber mit INT. Letztendlich ist es aber Geschmackssache.

    Vorteil bei GUID (uniqueidentifier in SQL) ist bspw., dass es keine aufsteigenden Zahlenfolgen gibt, durch die ein potentieller Angreifer einfach mal alle möglichen ID Werte durchprobiert. Klar würde das auch bei GUID gehen aber es ist unwahrscheinlich, dass man damit schnell Erfolg hat. (Interessiert aber eh nur, wenn die Anwendung nicht richtig abgesichert ist)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 13. September 2017 07:57
    Moderator
  • Hallo Paul,

    für Useraccounts und Felder ohne Inkrement nutze ich gern Guid diese speichere ich aber einfach als string in der DB. Sonst nutze ich auch nur Int. Grade wegen der aufsteigenden Zahlenfolge finde ich das sehr praktisch


    Gruß Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Cross Platform Canvas for UWP, Android, iOS

    UWP Community Toolkit Sample App

    Alle Größenangaben in UWP müssen durch 4 teilbar sein


    Mittwoch, 13. September 2017 08:08
  • Hallo Paul,
    das Problem des GUID als CLUSTERED INDEX wurde von Uwe Ricken hier beschrieben:
    http://www.db-berater.de/2015/04/guid-vs-intidentity-als-clustered-key-2/

    Hast du viel Daten, ist das ein Punkt. Sonst scheint das einfach nur etwas zu sein was man festlegen muss.
    Für Systeme bei denen offline Daten erfasst werden kann das die erste Wahl sein.

    Aber merkst Du Dir freiwillig lieber eine GUID statt einem int wenn Du eine SQL tippen möchtest?

    OT: Einen schönen Beitrag zur Frage  Clustered oder HEAP fand ich den hier: 
    http://kejser.org/clustered-indexes-vs-heaps/

    Grüße Alexander

    Samstag, 16. September 2017 08:36