RostD Asked:2020-12-23 18:24:31 +0000 UTC2020-12-23 18:24:31 +0000 UTC 2020-12-23 18:24:31 +0000 UTC 关系型数据库的信息存储结构 772 负责记录垫子运动的节点有一个架构解决方案。库存贵重物品: 由于每一种物质资产都有大量独特的属性,所以建议为每一种产品创建一张表,而不是将所有的属性都堆到一张公用表中。 请告诉我,这个解决方案有多糟糕,有多好,值得使用吗? 更新 因为 上面提出的解决方案违反了许多重要的事情并阻止了许多其他重要的事情,提出了使用 EAV 模型的变体: база-данных 2 个回答 Voted Akina 2020-12-23T18:57:52Z2020-12-23T18:57:52Z 这个解决方案可能有什么问题 有观点认为,构建良好的数据库在任何情况下都不应要求客户端应用程序执行 DDL 代码。至少出于安全原因:我可以创建 - 所以我可以删除。在您的情况下,具有一组新属性的新型产品的出现肯定需要这样的实现 - 特别是如果以前从未见过具有此类特征的任何属性。 Best Answer rjhdby 2020-12-23T19:37:34Z2020-12-23T19:37:34Z 您的解决方案有什么问题: 对于出现的每个新产品,您都必须创建一个新表 在每个表下,有必要写下使用它的方法。那些。您将不得不使用自己独特的 SQL 查询来处理每个产品 像往常一样,这样的问题就解决了。 使用以下字段创建一 (1) 个附加表: 产品编号 属性类型 属性值 并且选择任何产品的所有属性变成一个请求: SELECT type, value FROM attributes WHERE id_parent=:id
有观点认为,构建良好的数据库在任何情况下都不应要求客户端应用程序执行 DDL 代码。至少出于安全原因:我可以创建 - 所以我可以删除。在您的情况下,具有一组新属性的新型产品的出现肯定需要这样的实现 - 特别是如果以前从未见过具有此类特征的任何属性。
您的解决方案有什么问题:
像往常一样,这样的问题就解决了。
使用以下字段创建一 (1) 个附加表:
并且选择任何产品的所有属性变成一个请求: