Я столкнулся с проблемой дизайна; В проекте у меня есть три таблицы: Лига, Игроки и таблица ассоциации LeagueToPlayers, которая отображает несколько соединений между первыми двумя (поскольку игрок может одновременно играть в двух или более лигах):
League Players LeagueToPlayers
Id Name Id Alias LeagueId PlayerId
=-------- ------------ ----------------
1 League A 1 Longcat 1 1
2 League B 2 Leeroy Jenkins 1 2
3 League C 3 xyz 2 1
4 League D 4 qw3rty 2 3
5 Myrkgrav 3 2
4 1
(...) (...) 4 3
5 1
(...)
Моя проблема в том, что теперь я должен сопоставить игрока с игроком.
С моей точки зрения, можно сделать две вещи: либо добавить в таблицу Player дополнительное поле (отображая другой PlayerId), что является довольно плохой ставкой, потому что при всех шансах это будет отношение 1 .. *, или другой таблицей ассоциации. создан (не очень люблю идею, но я думаю, что другого пути нет).
Мне бы хотелось услышать ваши взгляды на этот вопрос ... какие-нибудь яркие идеи?
С уважением, Hal
РЕДАКТИРОВАТЬ: как уже упоминалось в комментариях, это метафора. Тип объектов, представленных в таблице «Player», варьируется ОЧЕНЬ много (например, двести различных типов), и они действительно должны отображаться таким образом. Объекты в таблице Player могут ссылаться друг на друга, потому что они в конечном итоге участвуют в одном и том же процессе и, как таковые, они связаны друг с другом. Это соединение определенно 1 .. *