2013-05-12 1 views
1

Используя этот пример 1 для апа: п отношение:MySQL многих MNy (п: п): Установка 1 записи в качестве главного входа

http://en.tekstenuitleg.net/static/images/beertable.gif

Что бы быть лучшим способом установить основные или первичные много-ко-многим? Пример: скажем, я хочу установить дистрибьютора «Devrolijke drinker» (ID AB999) в качестве основного или предпочтительного дистрибьютора пива «Синт» (ID 160). Мое первое предположение заключалось бы в добавлении дополнительного поля в таблицу переходов, например. (bool) is_primary. Но это может легко стать непоследовательным, если два поля будут (случайно) установлены на true, верно? Есть идеи? Благодаря!

Справочник

1 The many-to-many relationship

2 Another thread

+0

предпочитает не многим для многих. Мне нужно это решить – Drew

+2

Вы всегда можете установить все дистрибьюторы на ложные (говоря о 'is_primary'), прежде чем устанавливать новый первичный в true, чтобы он не был непоследовательным. – Shomz

+1

сохраните ваш перекресток/соединение для многих и многих. В таблице пива сохраните предпочтительный параметр – Drew

ответ

0

1) Вы можете Адда столбец "предпочтительный дистрибьютер" к столу пива, который будет иметь идентификатор предпочтительного дистрибьютора в качестве типа данных. затем добавьте еще один столбец основного дистрибьютора с этим идентификатором дистрибьютора. Это позволит запросить n соединений, которые вы хотите, чтобы это звучало.

2) Вы можете использовать систему нумерации. Добавьте это как отдельный столбец в таблицу «Распределитель пива». Вы можете сделать основного дистрибьютора = 1, предпочтительного дистрибьютора = 2 и т. Д. Затем запрос по этому значению, если вы хотите найти всех предпочтительных дистрибьюторов пива. (Этот способ будет работать лучше, если у вас будет более одного предпочтительного дистрибьютора для того же самого пива.

Смежные вопросы