I am new to ORM modelling and have a simple question.
Let's say I want a list of movies, their names, release dates and genres. A movie is here represented by the value type "name". But should I use "release date" and "genre" as entity types or a value types? I've seen different ORM models using different approaches. What is the reason for choosing one over the other?
Movie titles get re-used in a movie remake. Arguably never in the same year however, so the title and the production year (or release year? ensure you specify that!) should be enough to uniquely identify a particular movie production. Personally, I liked "The Italian Job (1969)" not the 2003 remake, which was positively awful.
The title is just a value - a piece of text. A Year on the other hand, that's an entity type, which is identified by a year number. You can verify this by asking a Muslim or the Chinese what year it is - they both have their own epoch which are not based on Common Era. Different numbers, same year. So the number isn't the same thing as the year.
It gets worse: their years don't roll over at December 31 either, but lets ignore that for now. Also, an astronomical (sidereal) year has 366.25 days, not 365.25, because that's the rate at which we circle the sky. One extra rotation "unwinds" one orbit around the sun. So it's really important to be clear on what your values mean.
Using this logic, a Date is an entity type, not a value type. It just happens that our databases have "value" support for Dates, which is why they also provide functions to tear them apart, etc. But a Date is an entity type, not a value type. You might decide to ignore this if your tooling makes it too inconvenient however.
Likewise for Genre. Different people might have different names for the same genre; a genre is not necessarily uniquely identified by its name. So you have the entity type Genre, identified by a value type GenreName. You're asserting that for your purposes, each Genre has exactly (and only) one name; but the use of an entity recognises the possibility of a different identifier being preferred. A Genre is not the same thing as the Genre Name.
I hope that gives you a clear rationale.