Krótka odpowiedź: ZALEŻY… W tym konkretnym przypadku może być dobrze. Jednak eksperci będą odradzać to prawie za każdym razem; w tym twój przypadek.
Czemu?
Klucze rzadko są unikalne w tabelach, gdy są obce (pochodzące z innej tabeli) w stosunku do danej tabeli. Na przykład identyfikator pozycji może być unikatowy w tabeli ITEMS, ale nie w tabeli ORDERS, ponieważ ten sam typ pozycji najprawdopodobniej będzie istniał w innej kolejności. Podobnie, identyfikatory zamówień mogą być unikalne (mogą) w tabeli ORDERS, ale nie w innej tabeli, takiej jak ORDER_DETAILS, w której może istnieć zamówienie z wieloma elementami zamówienia, a aby wykonać zapytanie dotyczące konkretnego elementu w określonej kolejności, potrzebujesz połączenia dwóch FK (order_id i item_id) jako PK dla tej tabeli.
Nie jestem ekspertem od DB, ale jeśli możesz logicznie uzasadnić posiadanie automatycznie generowanej wartości jako twojego PK, zrobiłbym to. Jeśli to nie jest praktyczne, to połączenie dwóch (lub może więcej) FK może służyć jako twoja PK. ALE nie przychodzi mi do głowy żaden przypadek, w którym pojedyncza wartość FK może być uzasadniona jako PK.