I don't think you need "NoCheck".
The "NoCheck" disables the Constraints, it's only useful to use temporarily when migratng data, but not on production.
You need the FK constraint to check for invalid values. (values inserted that doesn't exist in the PK table).
What you need is (0,1 - m) relationship, which means either the FK has a valid value, or it does not have a value.
For that all you need is to allow null for the FK.
If null is passed, the FK contraint will not be checked. If another a value (not null) is passed, the FK Constraint is checked.
Having said that:
Please make sure you get "NULL" generated for the FK when you check the Optional checkbox.