Уровень конфиденциальности для пользовательских объектов на пользовательском контент-сайте - PullRequest
2 голосов
/ 31 января 2011

Лучше ли хранить все метаданные объекта, такие как уровень конфиденциальности, в самой таблице содержимого или иметь отдельную основную таблицу метаданных? Объекты похожи на ссылки, фотографии, видео, теги, комментарии и т. Д. В настоящее время у меня есть 14 различных типов объектов, каждый со своей таблицей пользователей. Я вижу преимущества и недостатки в обоих направлениях:

Если в 1 таблице, то я могу запросить все уровни конфиденциальности для объектов одним запросом, в противном случае есть несколько таблиц для запроса. Если в разных таблицах обслуживание таблиц будет проще, так как оно не станет таким большим, как если бы в таблице фотографий было 10 миллионов строк, в видео - 20 миллионов, в ссылках - 40 миллионов, то это означает, что в таблице метаданных будет 70 миллионов строк.

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

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

1 Ответ

1 голос
/ 01 февраля 2011

В моем понимании вашей проблемы, я думаю, вы можете сделать следующее:

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

Таким образом, кратность будет от N до N, и вам придется добавлять индексы для ускорения ваших запросов.

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

Надеюсь, это прояснит ваш разум и поможет вам немного. Cheers,

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