【问题标题】:Social network - Privacy levels - database schema社交网络 - 隐私级别 - 数据库架构
【发布时间】:2011-05-10 07:34:05
【问题描述】:

我正在创建用户配置文件,并且对隐私级别的架构有几个问题:

关于个人资料的详细信息-> facebook 上有多个字段-生日、性别、位置、兴趣、关系、用户的全名等。从数据库的角度来看-这是如何完成的?我正在使用 MySQL,所以第一件事是隐私级别可以在 MySQL 中正常工作还是我需要一个非关系数据库?然后,将隐私分配给字段级别是这样的:

对象表 -> 个人资料字段 1,个人资料字段 2,.....
隐私查找表 -> 朋友 = 1,朋友的朋友 = 2、Everyone = 3、Blocked list = 4、...
用户对象表 -> 个人资料字段 1 具有隐私查找 1(这意味着字段 2 仅设置为朋友)?

以上方法适用于固定列表隐私级别,但如果我们有非列表隐私级别,例如:我想阻止人员 X、Y 和 Z 并只允许某些名为 A 的用户看到它,则没有固定级别为此,那么如何在架构级别表示呢?

这是一个归档级别,但隐私甚至处于更高的对象级别,例如单个照片、单个视频等。所以关于数据库使用/基本架构的任何一般性建议来指导我如何设计它?

谢谢。

【问题讨论】:

    标签: mysql networking schema privacy social


    【解决方案1】:

    您可以做的是实施实体关系建模,让您拥有无限的隐私列表。

    你可以有这样的表:

    Privacy
    id    varchar(36)
    label text()
    
    IsPrivacyActivated
    privacyid      varchar(36)
    isActivated    boolean
    
    UserPrivacy
    userid   varchar(36)
    privacyid varchar(36)
    

    通过这种方式,您可以非常轻松地实现上述所有功能。

    希望我能帮上忙,

    【讨论】:

    • 隐私表是我假设的隐私查找表?但这并没有深入到现场级别。我将如何表示我的生日以显示“仅限朋友”和“所有人,但只有 X 先生和 Y 先生被屏蔽”?
    • 然后在表isPrivacyActivated 上添加两个字段friendid (varchar (36)) 和isViewable (boolean) 代表谁可以看到它。所以你可以删除 isActivated 字段。
    猜你喜欢
    • 2012-02-27
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2014-01-31
    • 1970-01-01
    • 2019-02-26
    • 2020-01-29
    相关资源
    最近更新 更多