I always see in database articles or tutorials or… just everywhere where they use databases, they use a thing called relations. It comes to my mind instantaneously those little boxes with lists of field names and one field connected to another field in another box with a line.
I’m not an expert on databases (as you can probably tell) but the little bit I’ve used, I never needed relations. They always seemed to be redundant as I can always use JOIN to achieved what it seemed to me they are made for. Are they redundant or is there anything you can do with relations that you cannot do with JOIN? Or am I just talking nonsense?
Relations are not just about joins for SQL queries. Relations provide many benefits:
Data integrity:
Relations help to ensure that your "order records" can’t exist without a "customer record" for example. Simply by defining a relationship between customer and order, the database will ensure that this cannot happen. This helps to make sure that your database doesn’t become a big pile of junk data
Query convenience:
Relations can make it easier to do certain types of queries. Deleting a customer record can automatically have the customer’s orders deleted at the same time, thanks to the relationship between customer and order
Third party tool integration benefits
Many third party tools (O/R tools come to mind) rely on relations in order to work properly
Really, the list could go on and on…you should use them, they’re very beneficial. Even if you don’t perceive the value today, if you’re working on a database project that will continue to grow over a long period of time, it would be to your benefit to set relationships up from the beginning.
I think that they’re not that critical for small projects/one-off data models…but for anything of substance, you’re better off using them.