If you make the Type as Ref then i think either BUTTON or DROPDOWN are the only options possible, since you have to select option already available in the Referenced Table or create NEW in Referenced Table
Use two fields.
One of them is the Input field where they can type data in Text/number or whatever format matches the needed one (maybe matching the key column type of the ref table?)
The second one is the Ref one, keeping it hidden and using an AppFormula to take the key from the first field and changing it based on future edits or with Initial Value if you will accept this to be changed just once
I HAVE CREATE A VIRTUAL COLUMN AND FORMULA = [PINCODE].
THE NORMAL COLUMN HAS BEEN CHANGED AS TEXT TYPE AND VALID IF EXPRESSIONS HAS BEEN INCLUDE FOR IT.
IN SHOW IF CONSTRAINT , I HAVE USED THE FORMULA CONTEXT (“VIEWTYPE”)<> FORM (FOR VIRTUAL COLUMN) AND CONTEXT(“VIEWTYPE”) <> DETAIL FOR (NORMAL COLUMN).