Что лучше использовать, пользовательские мета, пользовательские таксономии или новая структура базы данных?

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

Итак, я хотел бы знать, что лучше использовать для хранения всех данных для этой системы. Должен ли я использовать пользовательские мета, пользовательские таксономии или я должен работать непосредственно с базой данных?

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

Благодаря!

Solutions Collecting From Web of "Что лучше использовать, пользовательские мета, пользовательские таксономии или новая структура базы данных?"

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

С другой стороны…

Вы можете использовать таблицу usermeta, чтобы делать то же самое, сохраняя несколько мета-ключей с тем же именем, что и уникальные записи,

Записи в таблице usermeta выглядят следующим образом:

umeta_id user_id meta_key meta_value 1 1 follower user_1 2 1 follower user_2 3 1 follower user_3 4 1 randomkey abcdef 5 1 follower user_4 

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

Лично я бы создал пользовательскую таблицу и только сохранил user_id и follower_id (возможно, имя follower_username тоже).

 primary_id user_id follower_id follower_username 1 1 2 name2 2 1 2 name2 3 2 5 name5 4 1 8 name8 5 1 3 name3 

Сохранение имени пользователя вместе с идентификатором является необязательным, но полезным.

Затем я также сохранил сериализованное значение всех людей, следующих за пользователем, против отдельного пользователя в таблице usermeta, которую вы можете делать периодически через wp_cron. Если вам нужно показать определенного пользователя, который следит за ними, вы можете получить отдельную meta_key пользователя usermeta, неэтериализовать данные и представить их соответствующим образом.

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

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

Конечно, все это очень обобщенно, потому что это действительно зависит от вашего расширенного варианта использования в отношении того, что вы можете делать.