我有一个数据库,其中一个表包含一组实体 - 让我们说电影。我希望前端的用户能够创建和保存这些电影的多个排序。
我怎样才能理智地存储这些订单?我应该考虑什么(使数据库模式更好,或者性能等)?
在这个特殊情况下,我只期待数据库中有大约100部电影,并且可能只有不到10部保存的顺序,所以性能不太可能是一个主要问题,尽管理论上它可能会变得更大。
我的想法到目前为止,并没有限制好,包括;
有一个排序表,存储订购ID,订购名称, 和电影ID的JSON.stringified版本。
拥有一个存储订购ID和订购名称的表,以及一个单独的表 表存储,不知何故(一个链表?)几组实际 订单 - 通过存储单个订单但添加订单 ID。 (这第二个表可能包含每对的记录 电影和订单......)
答案 0 :(得分:0)
您的想法基本上涵盖了它,省略了一些特定于实现的选项,例如Postgres的阵列字段支持,这是实际目的,是实现#1的另一种方式。
#1结构紧凑,易于设置,但缺乏参照完整性:如果删除电影,则必须确保自己从所有列表中删除。 #2涉及更多的工作和稍微复杂的结构,但回报是数据库跟踪关系;以删除电影为例,您可以选择阻止删除列表中的任何电影,或者级联删除以删除所有列表中的条目。
每个都有其优点和缺点。哪个适合真正取决于您的具体用例。