gpt4 book ai didi

database-design - 如何设计一个可搜索的、版本化的项目库,其属性千差万别和多个编辑器?

转载 作者:行者123 更新时间:2023-12-05 00:35:42 25 4
gpt4 key购买 nike

我需要什么:

我正在为必须满足以下要求的产品库设计后端:

  • 多个编辑器将同时编辑不同的项目——必须有某种项目级别的锁定。
  • 变化很大的项目属性——大约有 100 个子类别,每个子类别可以有 10 多个特定于自身的项目属性。
  • 必须对整个项目存储进行版本控制——在将整个更改集发布到站点之前,可以进行多次更改(插入、编辑和删除);取消发布也必须是可能的。
  • 我必须能够搜索所有属性并按其中一些进行过滤——即在库中的任何地方查找关键字或查找满足一组条件的所有产品——在至少 10MB 的数据集中(即 5000 个项目,每个 2KB,) 可能是两倍。

  • 解决方案应该是特定于 MySQL 的,或者更好的是,与供应商无关。

    我考虑过的:

    我正在考虑使用单个大型 XML 对象,其中所有项目(满足 2 )都存储在数据库中(以满足 3 ),但这使得 1 不可能和 4 难的。我以前使用过类似的东西,但使用较小的 XML 对象并且没有项目级锁定。

    我正在考虑的另一个解决方案是经典的数据库解决方案,为每个子类别使用单独的表,这使得 1 2 微不足道,但 3 4 相当困难。考虑到不同子类别的数量以及数据库中不同表的数量,这也有点笨拙,但我想这可以自动化。

    另一种可能性是两者之间的混合,具有所有项目的单个大型数据库表。每行都将包含一个 XML 对象,该对象具有所有项目的属性以及所有作为表字段的可过滤属性。这解决了 1 , 2 并部分解决 4 但省略了全文搜索,仍然使 3 比较难实现。

    如果你到目前为止已经做到了:

    我可能有几周的时间来解决它,这应该留出足够的时间进行讨论。我将非常感谢 SO 社区可以提供的所有想法和见解。提前致谢。

    最佳答案

    选项 2 - 您概述的经典数据库解决方案适用于这种情况。

    它负责 1、2 [有点困难,但您可以通过设计小 gereric 管理器来克服大部分困难]、3。

    对于第 4 点,我建议您探索使用 Apache Solr,它可以轻松与 RDBMS 集成,可以索引数据,并且比 SQL 快 100 倍。

    关于database-design - 如何设计一个可搜索的、版本化的项目库,其属性千差万别和多个编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146014/

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