SQL style guide – a consistent code guide ensuring legible and maintainable code
sqlstyle.guide
sqlstyle.guide
I hope Simon Holywell has never had to model a zoo in SQL. "Where are the rattlesnakes Simon - are they in the rhumba, crash or knot table?" [1]
[1] http://blog.writeathome.com/index.php/2013/03/improved-anima...
select *
from asdf
where col1 = 5
or col2 = 6
I'll concede that the river is less pretty, but it's substantially easier to type, and SQL keywords are remarkably conducive to being tabbed around.EDIT: Perhaps hilariously, by preceding the code with two spaces, the stuff got out of alignment. I'm adding another two padding spaces to start. (I usually use a 4 space tab, but I can see how the river becomes a bit wide on 8.)
This goes contrary to what I was taught : use singular form. When I model my databases I think in those terms : employee works for 1 to n company, company has 0 to n employee. Since it's a "many to many" relationship you need a third table (entity really) which you could call "working_with". The columns are id_employee and id_company.
This is the basis of the Merise method, but I don't think it's available in English. It makes modeling databases really easy.
- mapping is not intuitive for non-native English speakers (flora, really?!)
- manual table mapping needed for ORM systems
I'd prefer the singular, but ActiveRecord uses the plural, and I'd rather go along with the default, rather than fight and create friction for my team.
EDIT: looking closer, the style guide is great, but the naming conventions are atrocious. I'm reminded of what my Intro to CS TA told us: naming stuff is hard, so try to explain your code. If you have to explain what something is, the explanation should be the name (within reason)
As for the non-English speakers finding the collective difficult; I can see that. I have not specifically considered their needs whilst compiling the guide. In the case of `flora` I am guessing you're thinking `plant`?
Speaking from experience, you can't even expect native speakers to know all the collective forms. Worse, in some cases the collective form may cause confusion if the collective is the singular of a different table (players in a team, teams in a league, doing a fantasy football league app).
Using the plural, your schema would be player -> team -> league. Using your system, it would be team -> league -> sport. Good luck explaining that to a new hire.
Not all players will be on the same team, but they still participate in the league so I disagree with this example terminology shift.
You would end up with a slightly more generalised naming like this in my opinion:
- athletes - teams - leagues
In this particular case there are no suitable collective terms.
Someone mentioned that tables can be considered like types - another interesting thought - in which case singular makes sense.
On the other hand it is a collection of something and therefore the collective term applies equally well.