DASSL / ClassDB

An open-source system to let students experiment with relational data
https://dassl.github.io/ClassDB/
Other
7 stars 2 forks source link

Add-M2-ERD #145

Closed KevinKelly25 closed 6 years ago

KevinKelly25 commented 6 years ago

Added new entities and attributes to match the desired M2 goal as described in the M2 wiki

KevinKelly25 commented 6 years ago

Fixed two syntax errors in ERD.

smurthys commented 6 years ago

Good start @KevinKelly25

In addition to the issue @srrollo mentions:

smurthys commented 6 years ago

I also have the following suggestions:

KevinKelly25 commented 6 years ago

Made corrections for ERD. I made a "Notes" box like the attribution box. However, I am not sure the placement is the best area for it. The reasoning for the current placement is so that the notes box is inherently read first since it explains the format of the ERD.

smurthys commented 6 years ago

Nice changes @KevinKelly25. Like @baconbm, I agree the notes box is situated perfectly.

A few things to consider (I know, obsession about details 💯):

The last note in the box raises an interesting question about the cardinality constraint across from Role in each Represents relationship: Should that constraint should be 0..1 instead of 1..1, as in "a role represents 0 or 1 team" and "a role represents 0 or 1 user"?

What do you all think?

KevinKelly25 commented 6 years ago

@smurthys That does make sense to make it so a role is 0..1 for both since you can be one and not the other. However, it does bring up two questions that we might have to consider in the future.

1) Can a role be both a team and a user? I imagine that a role should be one or the other but not both.

2) Should user and team be connected as well? Since user(s) make up a team.

smurthys commented 6 years ago

@KevinKelly25 Perhaps I misunderstand your question, but I believe the last note says the role can only represent a user or a team, but not both.

We should relate team and user when we support team functionality. No need to depict the details of something as yet unsupported.

KevinKelly25 commented 6 years ago

@smurthys I worded it wrong and meant it towards how we have ClassDB programmed currently but I looked more closely and found out the answer. Thank you for the response.

afig commented 6 years ago

I agree with @smurthys's suggestion that a cardinality constraint of 0..1 from Role makes more sense. Adding the additional notes about the syntax we're using sounds good as well.

One tiny fix: The line between the Role and Team boxes is not fully connected on both ends to the edge of the boxes. Same with the line from Role to User on the Role side.

Apart from that and the other suggestions that have been made, the diagram looks good.

KevinKelly25 commented 6 years ago

@afig Thank you for the tips on Draw.IO. They definitely will help as the grid snapping was making things harder.

KevinKelly25 commented 6 years ago

Made corrections for issues brought up by @smurthys and @afig

smurthys commented 6 years ago

The last note should read "Entities in double-lined rectangles are weak entities; double-lined relationships are identifying relationships"

Thinking further about how best to avoid confusion for the reader, and being precise, I feel the Role entity should have only the RoleName attribute.

KevinKelly25 commented 6 years ago

Made corrections for comment by @smurthys