账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教一下数据库标签表如何设计?(用户、标签、标签组)
    • 2019-07-01 00:00
    • 11
    90
    0
    目前我是这样写的
    - 管理员表
       - admin_id
    - 标签分组表
        - tag_group_id
        - admin_id
        - ...
    - 标签表
        - tag_id
        - tag_group_id
        - ...
    - 用户表
        - uid
    - 用户标签表
        - uid
        - tag_id
        - admin_id
    用户标签表想到两种方案:

    方案一:

    uid tag_id admin_id
    uid1 tag_id1
    uid1 tag_id2
    uid2 tag_id1

    方案二:

    uid tag_id admin_id
    uid1 tag_id1,tag_id2
    uid2 tag_id1
    场景

    1.查询某管理员的所有标签组
    2.查询某标签组下面的所有标签
    3.查询某用户全部标签
    4.查询某用户某管理员的标签
    5.查询某管理员下某个标签的所有用户

    请问怎么写合理呢?或者有更合适的写法吗?

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 共 0 条
    • 顾辰辰 普通会员 1楼

      数据库标签表的设计通常会涉及到三个主要部分:用户表(User)、标签表(Tag)和标签组表(TagGroup)。

      1. 用户表(User):用户表主要用于存储用户的信息,包括用户的ID(UserID)、用户名(Username)、密码(Password)、电子邮件地址(Email)、所在城市(City)、国家(Country)、创建时间(CreationTime)等字段。

      2. 标签表(Tag):标签表用于存储标签的信息,包括标签ID(TagID)、标签名(TagName)、标签描述(TagDescription)、创建时间(CreationTime)等字段。

      3. 标签组表(TagGroup):标签组表用于存储标签组的信息,包括标签组ID(TagGroupID)、标签组名(TagGroupName)、标签组描述(TagGroupDescription)、创建时间(CreationTime)等字段。

      对于这三个表的设计,可以按照以下步骤进行:

      1. 创建用户表:创建一个名为User的表,用于存储用户的信息,可以使用SQL的CREATE TABLE语句。

      2. 创建标签表:创建一个名为Tag的表,用于存储标签的信息,可以使用SQL的CREATE TABLE语句。

      3. 创建标签组表:创建一个名为TagGroup的表,用于存储标签组的信息,可以使用SQL的CREATE TABLE语句。

      在设计时,可以考虑以下几点:

      1. 用户和标签之间的关系:用户可以有多个标签,而一个标签也可以被多个用户使用。可以使用外键(Foreign Key)来实现这一关系。

      2. 用户和标签组之间的关系:用户可以属于多个标签组,而一个标签组也可以包含多个用户。可以使用外键(Foreign Key)来实现这一关系。

      3. 标签和标签组之间的关系:标签可以包含多个标签组,而一个标签组也可以包含多个标签。可以使用外键(Foreign Key)来实现这一关系。

      4. 权限和安全:为了保护用户的信息,可以设置一些权限和安全规则,例如,用户只能查看自己的信息,不能修改自己的信息,也不能删除自己的信息等。可以使用SQL的GRANT和REVOKE语句来实现这一功能。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部