1) Ich würde trotzdem einen künstlichen Primärschlüssel für die Zuordungsabelle verwenden. Für die Eindeutigkeit würde auch einen Unique-Index reichen
2) Z.B einen Dummy-User anlegen, mit den Standardfeldern und dieses bei allen zusätzlich Verwenden
SQL-Code:
select
f.Text, ...
from
zo z
join felder f on f.id = z.Feld_ID
where
z.USER_ID in ( 0, :USER);