You are right but ambiguous about the missing diagram
In your tutorial:
- A product is not necessary used in any order. So, on the many side the relation is optional
- The foreign key constraint ensures that the value in
product_no
must exist in the table products
. But the foreign key can be NULL
, in which case there is no value, and the existence check is not applicable (see also Can a foreign key be NULL and/or duplicate). In consequence, the one side of the relation is also optional
This is why the tutorial relation is an optional one-to-many (sometimes abusively called zero-to-many). In crow's foot notation, the explicit notation would be with hollow circles (representing the O from optional):

If you change the constraint from optional to mandatory, you indeed just have to specify that the foreign key as NOT NULL
like you did in your second alternative, which would lead to:

Making the relation mandatory on the "many" side would mean that for every product, there's at least one order using it. This would require some programmatic enforcement that could not be parsed solely from the SQL structure.
pgadmin4 tool limitations
I'm not an expert of pgadmin4, but a quick look at the diagramming tool documentation shows that it only knows one-to-many and many-to-many relations, and that the dialogues do not allow to make a difference between optional and mandatory. It is for example a known bug that it cannot represent a one-to-one relation.
Looking at the diagrams in the documentation, in similar SO questions and the official issue tracker, it appears that the diagramming tool only knows:
for many
and
for one
It means that the tool cannot make a difference between mandatory (double bar for one, bar and trident for many) and optional (circle bar for one, circle trident for many), and that the symbols used are to be understood as unspecified in this regard. The small dot is therefore ambiguous and could be understood as a fancy notation of the crow's foot trident.
Conclusion
Since the diagramming tool cannot deal with this subtleties, the reverse engineering from the SQL statement cannot represent these variations in an accurate way, even if it would have the algorithms to detect them in the constraints.