【问题标题】:Parent - child relationship for album-photo privacy相册照片隐私的父子关系
【发布时间】:2011-02-08 22:27:43
【问题描述】:

我们如何最好地表示父子关系,其中子节点有自己的设置,父节点有自己的设置,但父节点可以覆盖子节点?

我的用例是相册的隐私级别。每个相册和每张照片都有一个隐私级别。因此,如果相册 = 自定义,那么每张照片都可以有不同的隐私级别。但是当然,如​​果相册设置为“仅限朋友”,则照片不能公开,因此任何公开的照片都会被覆盖为私人照片。或者,如果相册设置为“仅限网络”,则朋友可以看到它,但公众不能。

我不确定这是通过应用程序逻辑还是通过模式来处理的。如果通过应用程序逻辑,那么我需要这些表中的“任何”列,还是 100% 应用程序端?

【问题讨论】:

    标签: database-design photo privacy


    【解决方案1】:

    您可以有一个权限层次结构,0 - 公开,1 - 网络,2 - 朋友,3 - 自己。相册和照片在数据库中都有一个权限字段,但照片的权限始终必须 >= 他们所在相册的权限。默认情况下,它们等于相册权限。

    这样您就可以拥有一个仅限网络的相册,其中包含一些仅限朋友的照片和一些仅限自己的照片。

    因此,每个对象的权限信息将存储在数据库中,但应用程序将控制可以为照片设置哪些权限,当然,谁可以根据权限来查看哪些相册/照片对象和访问者的状态/位置。

    【讨论】:

    • 这对于像 facebook 这样的隐私结构的网站来说还可以。我有非结构化隐私,例如您可以允许“朋友的朋友”但阻止您的朋友。或者只允许朋友的网络和朋友,但阻止你的朋友。所以有结构化和非结构化隐私的混合+还有阻止列表。
    【解决方案2】:

    我认为这必须在应用程序中。这不是很多工作,基本上你检查相册是否有隐私级别,如果有,将其应用于其子级,否则使用子级的隐私级别。这不是您在数据库中处理的那种事情。

    【讨论】:

    • 但我仍然需要将当前隐私级别存储在我假设的表中,例如 Album = 只有朋友,并且还需要存储照片的用户隐私级别?
    • 是的,相册和照片具有隐私级别 - 如果设置了相册隐私级别,则使用该级别,否则使用照片隐私级别。
    • 好的,让我把它与我的隐私级别进行映射,看看它是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多