I think ForeignKey is the right place; ForeignObject exists to support multi-column joins; checks don't seem appropriate at that level.