Лучше иметь один первичный ключ или использовать составные первичные ключи (обычно они представляют собой сочетание одного первичного ключа и внешних ключей). У меня есть примеры ниже:
Пример составного первичного ключа:
AMeta
--- AMetaId - первичный ключ
--- AMetaText
BMeta
--- BMetaId - первичный ключ
--- AMetaID - внешний ключ к таблице AMeta
--- BMetaText
A
--- AId - первичный ключ
--- AMetaId - первичный ключ и внешний ключ к таблице AMeta
--- ATExt
B
--- BId - первичный ключ
--- BMetaId - внешний ключ первичного ключа для таблицы BMeta
--- AId - первичный ключ и внешний ключ к таблице A
--- BText
Пример одного первичного ключа:
AMeta
--- AMetaId - первичный ключ
--- AMetaText
BMeta
--- BMetaId - первичный ключ
--- AMetaId - внешний ключ к таблице AMeta
--- BMetaText
A
--- AId - первичный ключ
--- AMetaId - внешний ключ к таблице AMeta
--- ATExt
B
--- BId - первичный ключ
--- BMetaId - внешний ключ к таблице BMeta
--- AId - внешний ключ к таблице A
--- BText
Какой дизайн базы данных лучше?