That all seems quite normal, except where you say AppID is the primary key of AppContacts as well as of App. That means there is a 1:1 correspondence between App and AppContacts; is that what you want? If it is, fine.
The reason I have the same column names is because I need a way to link both tables.
Column names (in Oracle) do NOT have to have the same names in order to be linked by the mean of a foreign key (referential integrity constraint).
Also have a FAQ table with FaqID as the primary key and AppID as another column so that I can link these 2 tables.
I guess you'd like to link tables "FAQ" and (one of, or both) "APP" / "APPCONTACTS". Well, everything is fine - just like Tony already said, regarding the fact that you can not create foreign key from faq.appID to both app.appID and appcontacts.appID (but you can create two foreign keys from app.appID to faq.appID and from appcontacts.appID to faq.appID).
I'd just like to add that having AppID columns in those tables as primary keys (unique constraint would also work) is necessary if you want to create foreign keys from FAQ to those tables. Creating unique index (for example, just to show similarity between "unique key constraint" and "unique index" names) would not allow you to do so.