Я собираюсь создать веб-приложение на PHP и уже решил использовать Codeigniter + DataMapper (издание OverZealous) .
Я обнаружил, что DataMapper (издание OverZealous) требует использования дополнительной таблицы ассоциаций, даже если на самом деле существует только отношение один-ко-многим.
Например, в стране может быть много игроков, но игрок может принадлежать только одной стране. Типичный дизайн базы данных будет выглядеть так:
[countries] country_id(pk), country_name
[players] player_id(pk), player_name, country_id(fk)
Однако в DataMapper требуется, чтобы дизайн был таким:
[countries] country_id(pk), country_name
[players] player_id(pk), player_name
[asso_countries_players] countries_players_id(pk), country_id(fk), player_id(fk)
Это хорошо для обслуживания, потому что если позже мы передумаем, что игрок может принадлежать более чем одной стране, это можно сделать без особых усилий.
Но что я хотел бы знать, так это то, что для такого дизайна базы данных, вообще, есть ли выигрыш или потеря производительности по сравнению с типичным дизайном?