Es ist nicht möglich und möglicherweise auch nie möglich, einer json-Eigenschaft einen Fremdschlüssel zuzuweisen. Es wäre eine große und ziemlich komplizierte Änderung der Fremdschlüsselerzwingung von PostgreSQL. Ich denke nicht, dass es unmöglich ist, aber es würde zu ähnlichen Problemen kommen wie beim Foreign-Keys-to-Arrays-Patch.
Mit 9.4 wird es möglich sein, ein ganzes JSON-Objekt als jsonb
zu einem Fremdschlüssel zu machen unterstützt Gleichheitstests. In 9.3 ist das nicht einmal möglich.