【问题标题】:How to handle a user's profile fields privacy?如何处理用户个人资料字段的隐私?
【发布时间】:2015-02-17 11:43:28
【问题描述】:

我有一个用户表,其中包含所有详细信息,例如用户名、电子邮件 ID、出生日期、联系电话。用户有朋友,这些朋友可能属于某些组,例如亲密的朋友、家人、用户创建的同事。一位朋友可能属于一个组或多个组,或者根本不属于任何组。

我需要为朋友或朋友组设置与用户表的属性相关的一定隐私。就像例如我的家人只能查看我的出生日期,或者同事只能查看我的电子邮件 ID,但不能查看出生日期或联系电话等其他详细信息。

我怎样才能获得这种隐私?

谢谢。

【问题讨论】:

  • 这是一个非常广泛的问题,我不确定是什么问题。根据组发出不同的查询怎么样?
  • 获取支持行安全和列安全的数据库

标签: mysql database database-design


【解决方案1】:

为每个“特殊”属性设置一个单独的表可能会导致您拥有很多表。另一方面,您可以使用实体-属性-值模型。这样一来,您将拥有一张用户表,一张用于所有用户属性的表,以及一张用于与特定用户及其属性关联的值的表。

用户

身份证 id组

属性

身份证
说明

价值(用户属性)

idUser
idAttribute
价值

此外,您可以关联属性表和组表。通过关联这两个表,您可以指定每个组的哪些属性可见。不要忘记关联用户表和组表。

身份证
说明

访问(组属性)

id组
id属性

【讨论】:

    【解决方案2】:

    您不应该尝试在代码而不是数据库上处理该逻辑吗?这似乎与业务逻辑有关,而不是实际的数据模型。

    如果您想继续采用这种方法,您是否考虑过将私有数据放在单独的表中?

    【讨论】:

    • 没有。我只有一张表中的所有用户信息。我打算保留一个单独的表,其中包含一个用户 ID、需要定义其隐私的字段以及该字段可见的用户 ID 列表。但这将创建一个具有大量冗余的巨大表。
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    相关资源
    最近更新 更多