Допустим, у меня есть таблица USER, и каждая моя база данных должна обрабатывать какой-то список ожидания.Список ожидания напоминает очередь с приоритетами (это не FIFO, есть значение, которое будет определять позицию в очереди).Я имею в виду наличие еще одной таблицы WAITINGLIST, содержащей два столбца, представляющих идентификаторы пользователя (внешний ключ) и приоритет пользователя в списке ожидания.Это хороший дизайн?Каждый раз, когда появляется вакансия, пользователь с наивысшим приоритетом будет обслуживаться и удаляться из списка WAITINGLIST.
Как называются отношения?Это один к одному?Но не все пользователи существуют в списке ожидания.
Это хороший дизайн?Я читал, что один-к-одному редко бывает хороший дизайн.Я также могу просто указать это значение приоритета в качестве другого столбца в USER, но, поскольку USER намного больше, чем WAITINGLIST, я думаю, что производительность будет намного лучше, если использовать WAITINGLIST (гораздо меньше строк для сортировки).
EDIT:приоритет не является каким-то ограниченным, дискретным значением, таким как (0 - 5, низкий - высокий), но это значение с плавающей запятой (результат некоторых вычислений), и один и тот же пользователь будет очень редко иметь такой же приоритет, поэтомупроблема здесь не в выборе, когда два пользователя имеют одинаковый приоритет.