I'm, however, having a bit of trouble understanding some of the bridge tables you've put in place - LeakBadActor and LeakPlatform.
To me, these make total sense if Leak <-> Platform have a many-to-many relationship, even though I kind of fail to see why they would have a many-to-many relationship to begin with, but perhaps you could reply to this issue if you want to clarify this for me.
However, if Leak -> Platform is one-to-many or one-to-one, I think having LeakPlatform as a bridge table might be a case of over-normalization. Why not simply have the platformId in the Leak table? It will save you a JOIN operation! ✨
Also, managing foreign and primary keys in bridge tables might cause trouble if you want to extend your database in the future. Doing updates and deletes and cascading down these tables are more cumbersome than you think!
Perhaps I'm missing something but I'd be delighted to learn why this design choice was made!
Thanks and keep up the awesome work!
Was taking a look at https://github.com/palavrapasse/docs/blob/master/core/data-model.md and found it a super interesting read! 🎉
I'm, however, having a bit of trouble understanding some of the bridge tables you've put in place -
LeakBadActor
andLeakPlatform
.To me, these make total sense if
Leak <-> Platform
have a many-to-many relationship, even though I kind of fail to see why they would have a many-to-many relationship to begin with, but perhaps you could reply to this issue if you want to clarify this for me.However, if
Leak -> Platform
is one-to-many or one-to-one, I think havingLeakPlatform
as a bridge table might be a case of over-normalization. Why not simply have theplatformId
in theLeak
table? It will save you aJOIN
operation! ✨ Also, managing foreign and primary keys in bridge tables might cause trouble if you want to extend your database in the future. Doing updates and deletes and cascading down these tables are more cumbersome than you think!Perhaps I'm missing something but I'd be delighted to learn why this design choice was made! Thanks and keep up the awesome work!