database - 预定义和自定义标签的数据库设计
问题描述
我正在为一个类似于用户为目标项目提供一些标签的系统设计一个关系数据库模式(最有可能在 postgres 中使用)。
约束是:
- 一个目标需要 3 个标签
- 有一个预定义标签列表。您可以假设此列表始终保持不变。每次用户尝试标记目标时,该列表将呈现给用户,以便他们从中进行选择。
- 如果用户对预定义的标签不满意,他们可以输入一个值来生成自定义标签,只要他们使总标签数达到 3。
- 基于当前业务逻辑的任何未来目标或任何其他用户都不需要重复使用自定义标签。
CUSTOMISED_TAGS
所以我觉得现阶段将它们存储在单独的表中并不是很有意义。
我最初对设计的想法是:
PK:主键,FK:外键,如下
- 具有
TARGETS
唯一 ID 的目标表 (target_id, PK
) - 具有
DEFAULT_TAGS
唯一 ID 的预定义标签表 (tag_id, PK
) RECORDS
表由和target_id, FK
列组成tag
。我希望将tag_id, FK
或name_of_customised_tag
放在列中tag
但是是否可以将一列作为外键或只是一个随机文本值,这似乎为一列引入了多种类型?
有没有更好的建议来处理这些预定义标签和自定义标签?
解决方案
推荐阅读
- python - keras 中的自定义指标功能出错
- css - 如何反转svg的alpha通道
- git - “git commit”的意外行为。当预提交挂钩修改暂存文件时
- sql - OVER 语句中的 COALESCE 函数不起作用
- python - 异步产生后,“继续”会发生什么?
- c - 我收到消息:无法在分配中将 'float' 转换为 'float*' 并且我有一些逻辑错误
- sqlite - 如何在 mac 上为 sqlite3 获取电子窗口绑定?
- android - 在 WhatsApp 等信使软件中发送和接收消息
- embedded-linux - 为什么我的内核配置选项在运行 bitbake -c savedefconfig virtual/kernel 后没有在结果 defconfig 中设置?
- ionic-framework - 单个组件的离子变化平台样式