Лучший способ связать данные с более низкими запросами базы данных [общий, без языка] - PullRequest
0 голосов
/ 28 апреля 2019

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

Я создал базу данных с двумя таблицами:

  • userTable с userID и userName
  • imageTable с imgID, fileName,fileCRC

Я могу думать только о:

a ) добавить просматриваемыйByT imageTable "user1, user213, user9"или же b ) добавить imageToView в userTable "123,545,21321,654565"

Но если я сделаю [ a ], то проблема заключается в том, что чем больше изображений просматривает пользовательтребуется больше времени, чтобы получить одно случайное изображение.

И если я сделаю [ b ], у меня уже есть список невидимых изображений, поэтому я могу просто выбрать одно случайное изображение и затем удалить идентификатор.,Но если один пользователь пометит его как неадекватный, я должен зациклить / удалить идентификатор из всех пользователей в БД ...

Есть ли лучший способ?

1 Ответ

0 голосов
/ 29 апреля 2019

Вам нужна промежуточная таблица, которая отслеживает, какой пользователь видел какое изображение.Таким образом, в основном эта новая таблица, назовем ее imageByUser, будет содержать идентификатор пользователя, идентификатор изображения, неподходящий логический флаг, dateseen datetime (необязательно, но будет полезно в долгосрочной перспективе) и сгенерированный первичный ключ (или вы можете иметь комбинациюпользователя, изображения и даты, которые вместо этого используются в качестве составного логического первичного ключа).

Наличие этой третьей таблицы решит все ваши проблемы, так как вы просто добавите новую строку, когда кто-то увидит изображение.Также, если они помечают это как несоответствующее, все, что вам нужно сделать, это изменить флаг несоответствующего на «да».Таким образом, вы можете даже отслеживать случаи, когда пользователь дважды видит одно и то же изображение (просто добавьте еще одну строку в таблицу).

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