gpt4 book ai didi

database - 在数据库中实现 "template of something that users can join"解决方案的最佳实践

转载 作者:搜寻专家 更新时间:2023-10-30 23:16:54 24 4
gpt4 key购买 nike

我正在寻找设计数据库模式的最佳实践,在该模式中,某人可以发布某物的模板(例如某个“日程表”的样子),然后用户可以“加入”该模板但从中更改内容当然无需更改原始模板。

我将添加一个示例,因为我不是最擅长以文本形式解释某些内容的人。 (英语不是我的母语)

假设您有 4 张 table :

  • 时间表
  • 任务
  • 任务规则

一个日程可以有N天,一天可以有N个任务,一个任务最终可以有N个taskRules。用户将通过连接表(具有用户 ID 和 schedule_id 的 user_schedule)“加入”此计划。

现在的问题是,当用户更改模板中的某些内容(假设他添加了一些 taskRules 或他删除了一个任务)时,所有连接到它的计划都会发生变化。

我的问题是处理此问题的最佳做法是什么?除了行复制,我真的看不出如何做到这一点,这不是我最喜欢做的事情。

编辑:这个模式意味着他将加入模板时间表并选择两件事中的一件(即改变它或不改变它,如果他不改变它,重复显然是多余的)

最佳答案

我的建议是:

  • 将任务重命名为 task_template。
  • 使用 template_id、user_id 和 task_template 中的所有其他字段创建一个名为 task 的表。
  • 添加数据时只插入新表中的差异。
  • 加载数据时,您会读取 template_id 并用行中不为空的内容覆盖。

这里的主要问题是您试图在 sql 数据库中实现继承/扩展/原型(prototype)...

关于database - 在数据库中实现 "template of something that users can join"解决方案的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com