UUID's en MyCLI

UUID's en MyCLI

In juni hadden we Mathias Verraes drie dagen bij ons op bezoek voor een DDD-training. Daardoor zijn we nog meer fan geworden van UUID's, in plaats van de traditionele (auto-incrementing) integers.

Het belangrijkste voordeel is dat je in code een UUID kunt genereren, en niet afhankelijk bent van een externe autoriteit, zoals de database die ID's genereert. Direct bij het maken van een Event, Command of Entity weet je z'n ID. Ook als het opslaan asynchroon of later gebeurt.

Daarnaast hebben integer ID's als groot nadeel dat verdelen over meerdere database servers heel lastig is. Er moet dan worden voorkomen dat dubbele ID's worden uitgegeven. Bij UUID's is die kans extreem klein. We hebben hier afgesproken dat we een feestje gaan geven als we ooit een dubbele UUID tegenkomen ;-).

Als UUID's in MySQL (of in ons geval MariaDB) worden opgeslagen, dan ligt een binary(16) voor de hand. Het nadeel is dat een SELECT uuid FROM table in de cli een rommeltje wordt.

En daar hebben we nu een oplossing voor! Sinds versie 1.5 herkent MyCLI automatisch binary-kolommen en zet de inhoud bij SELECT-en om naar het hexadecimale equivalent.

Vanaf nu is er dus geen enkele belemmering meer om UUID's te gebruiken!

1 comments

  1. Amjith Amjith Wrote on 17 maart 2016 03:39:25

    I'm the author of mycli. Thanks for the plug. I'm glad you found it useful.

Leave a comment...

Leave a comment

Italic en bold

*Dit is italic*, en _dit ook_.
**Dit is bold**, en __dit ook__.

Links

Dit is een link naar [Procurios](http://www.procurios.nl).

Lijsten

Een lijst met bullets kan worden gemaakt met:
- Min-tekens,
+ Plus-tekens,
* Of een asterisk.

Een genummerde lijst kan worden gemaakt met:
1. Lijst-item nummer 1.
2. Lijst-item nummer 2.

Quote

Onderstaande tekst vormt een quote:
> Dit is de eerste regel.
> Dit is de tweede regel.

Code

Er kan een blok met code worden geplaatst. Door voor de tekst vier spaties te plaatsen, ontstaat een code-block.