Как найти и обновить следующую запись в таблице ссылок - PullRequest
0 голосов
/ 22 мая 2010

У меня есть система объявлений, над которой я работаю.

Люди могут добавлять фотографии в объявления, но я показываю только одну при отображении списка объявлений.

Для этого у меня есть таблица ссылок между объявлениями и фотографиями, в которой есть логическое поле is_main.

Когда кто-то удаляет одну из своих классифицированных фотографий, я хочу:

1) See if there is more than that photo tied to the classified.
2) If there is, update the next photo and set that "is_main" field to TRUE.

Просто пытаюсь найти самый эффективный способ сделать это.

Ответы [ 2 ]

0 голосов
/ 22 мая 2010

По моему мнению, вы не должны устанавливать флаг 'is_main' в таблице фотографий, а добавлять идентификатор этой фотографии в секретную запись. Поиск «основной» фотографии для демонстрации гораздо быстрее (я полагаю, это происходит часто).

Когда вы удаляете фотографию из таблицы фотографий, вам нужно посмотреть, является ли она той, на которую есть ссылка в таблице объявлений, или нет. Если это так, то вы можете выбрать следующую фотографию, связанную с этим (например, с помощью min (PhotoID) или min (Created), где созданный - это дата и время, когда фотография добавляется в таблицу фотографий.

Вывод: свойство _main для фотографии - это не флаг на таблице фотографий, а FK в таблице объявлений.

0 голосов
/ 22 мая 2010

По моему мнению, хранение имен изображений в базе данных несколько избыточно.
Я предпочел бы создать каталог с именем классифицированного идентификатора и хранить там соответствующие изображения.

Итак, если пользователь удаляет фотографию, он просто удаляет фотографию.

Чтобы оставить одну фотографию в качестве основной, я бы назвал ее main.jpg.
если он будет удален, я прочитаю содержимое каталога и переименую любую фотографию, которая была первой.
это все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...