T7846: akonadi > MySQL ERD Review
Pablo Sanchez
noreply at phabricator.kde.org
Wed Jan 31 20:09:37 GMT 2018
pablo created this task.
pablo triaged this task as "Normal" priority.
TASK DESCRIPTION
This is an initial review of the Akonadi/MySQL Entity-Relationship Diagram (ERD).
**Model Notation**
Crow's Foot <https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#Crow's_foot_notation>
**Crow's Foot Refresher**
The symbols at the end of each relationship define the minimum and maximum cardinality:
- | - one
- o = zero
- < = many
For example given the following:
[parent]-------o<[child]
- Each **[parent]** may have //zero to many// **[child]**'s
- Each **[child]** may have //one and only// one **[parent]**
**Observations**
- There are many standalone entities (e.g. **[collectionpimitemrelation]**, **[tagtypetable]**, **[parttable]**, etc). I would think that //somehow// they would be related to some other entity.
- Perhaps this is my own ignorance of Akonadi but at first blush, I see several //islands// of relationships. For example, here are couple:
1. **[resourcetable]/[tagremoteidresourcerelationtable]**
2. **[collectiontable]/[pimitemtable]/[relationtable]/[pimitemtagrelation]/[mimetypetable]**
- The relationship **[mimetypetable]/[pimitemtable]** is defined such that we can have a **[pimitemtable]** row with no **[mimetypetable]** defined. I suspect that this is per specification but I want to be sure. :)
- //Minor// - personally, I don't like to embed the type of object in the name of the object. For example, //collection**table**//. This is admittedly a nitpick. ;)
- //Minor// - personally, it would be great to use underscores to separate names. I find it far easier to read **[tag_remote_id_resource_relationship_table]** than **[tagremoteidresourcerelationshiptable]** This is yet-another-nitpick.
F5685689: akonadi-mysql.pdf <https://phabricator.kde.org/F5685689>
TASK DETAIL
https://phabricator.kde.org/T7846
To: pablo
Cc: kde-pim, pablo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20180131/08eb98f1/attachment.html>
More information about the kde-pim
mailing list