non-id/non-integer support for has many