Родитель - дочерние отношения для конфиденциальности фотоальбома - PullRequest
0 голосов
/ 09 февраля 2011

Как лучше всего представить отношения родитель-потомок, где у дочерних элементов свои настройки, у родительских - свои, но родитель может перезаписать дочерний элемент?

Мой вариант использования - это уровень конфиденциальности для фотоальбома.Каждый альбом и каждая фотография имеет уровень конфиденциальности.Так что, если album = custom, то каждая фотография может иметь разный уровень конфиденциальности.Но, разумеется, если для альбома выбрано «только друзья», фотографии не могут быть общедоступными, поэтому любая общедоступная фотография перезаписывается на частную.Или, если для альбома установлено значение «только сеть», друзья могут его видеть, а публика - нет.

Я не уверен, обрабатывается ли это через логику приложения или схемуЕсли через логику приложения тогда мне нужна колонка «ЛЮБОЙ» в этих таблицах для этого или это 100% сторона приложения?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2011

У вас может быть иерархия разрешений, 0 - общедоступная, 1 - сеть, 2 - друзья, 3 - собственная личность.И альбомы, и фотографии будут иметь поле разрешений в базе данных, но разрешения для фотографий всегда должны быть> = разрешения для альбома, в котором они находятся. По умолчанию они будут равны разрешениям альбома.

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

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

0 голосов
/ 09 февраля 2011

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

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