質問に直接答えるには、movie_idをalt_titleテーブルの外部キーにします。次に、最も簡単なことは、おそらく、alt_titleテーブルの主キーとなる別のalt_title_idフィールドを作成することです。タイトルを主キーにすることはしません。良いキーを作成するには非常に長くて面倒だからです。
このデータで何をしているのかわかりませんが、私の衝動は、プライマリタイトルと代替タイトルの両方を保持する単一のテーブルを作成し、プライマリを識別するためのフラグを設定することです。各映画に関する他のデータがたくさんあると仮定して、基本的な映画レコードから別のテーブルにタイトルを引き出します。それらを1つのテーブルに入れると、プライマリタイトルまたは代替タイトルのいずれかで検索する場合は、次のように言います。
select whatever
from movie_title
join movie using (movie_id)
where title='Java Forever'
なんらかの理由で一次タイトルだけで検索したい場合は、
select whatever
from movie_title
join movie using (movie_id)
where title='Java Forever' and primary=true
2つのテーブルがあるので、プライマリタイトルで検索する場合は、確かに簡単です。ただし、プライマリまたは代替で検索する場合は、ユニオンが必要です。これは遅くて苦痛です。クエリが複雑で、他のいくつかのテーブルで結合したり、一連のフィールドを引き出したりする場合は、結合の各半分で、その余分な複雑さを2回記述する必要があります。