【问题标题】:How do I generate dynamic product descriptions based on SQL columns?如何根据 SQL 列生成动态产品描述?
【发布时间】:2021-07-13 10:03:51
【问题描述】:

我正在寻找执行以下操作的最佳方法。

我有一个包含大约 11.000 种产品的数据库,它们都有不同的属性(颜色、材料、长度、宽度、类别)

我想根据数据库中的可用(非空)属性生成动态产品描述。

例如

产品表

| ProductId | Code | MaterialId | ColorId | CategoryId |
| --------- | ---- | ---------- | ------- | ---------  |
| 1         | G5BB | 50         | NULL    | 71         |
| 2         | FF88 | 100        | 5       | 25         |

颜色表

| ColorId | Name  |
| ------- | ----- |
| 5       | black |
| 9       | blue  |

材料表

| MaterialId | Name    |
| ---------- | ------- |
| 50         | steel   |
| 100        | plastic |

类别表

| CategoryId | Name    |
| ---------- | ------- |
| 71         | bearing |
| 25         | screw   |

当类别为“轴承”时,我想显示如下描述 “产品 G5BB 是一种 钢 轴承,它是一种机械元件,可将相对运动限制在所需的运动范围内,并减少运动部件之间的摩擦。”

当类别为“螺丝”时,我想显示如下描述 “产品 FF88 是一个螺钉,由 黑色 塑料制成。螺钉用于通过螺纹与类似的螺纹啮合来紧固材料配合部分的内螺纹(内螺纹)。”

当然,我可以在我的 HTML 页面中编写此文本并在其间添加一些变量,但我有很多类别,这意味着我的 HTML 代码将变得巨大,包含所有文本和 ifs.

我希望将这些文本作为 CATEGORY 表中的一列保留在我的 SQL 数据库中。 但是如何在这些文本中使用动态字段(颜色、材质、...)?

我认为 SQL 中的视图是一种解决方案,但我正在使用 ASP.NET CORE MVC(代码优先),我想避免直接在 SQL 中构建视图。

有人有想法或解决方案吗?

【问题讨论】:

  • 类似于类别查找表(您可能已经有了),每个类别都有适当的文本,变量部分的占位符,以及使用大小写表达式替换为实际值的函数。
  • 类似:“产品 [PRODUCTPLACEHOLDER] 是一个螺钉,由 [COLORPLACEHOLDER] [MATERIALPLACEHOLDER] 制成。螺钉用于通过螺纹与类似的内螺纹(内部线程)在匹配的部分。这是你的意思吗?
  • 是的,类似的,使用replace 替换查询中的实际值

标签: sql asp.net-core model-view-controller text dynamic


【解决方案1】:

您可以在 SQL 中创建存储过程

`声明@Categorytype varchar(30) (parameter of SP)

variable 声明@Description varchar(MAX) 声明@ProductCode varchar(30) 声明@MaterialId varchar(30) 声明@MaterialName varchar(30)

Select @ProductCode = Code,@MaterialId = MaterialId from PRODUCT where CategoryId in (从 CATEGORY 中选择 categoryid,其中 [name] = @Categorytype)

从 MATERIAL 中选择 @MaterialName = MaterialName 其中 MaterialId = @MaterialId

Set @Description = 'Product '+@ProductCode+' 是一个 '+@MaterialName+' 并且由黑色塑料制成。 螺钉通过螺钉的啮合来固定材料 具有类似内螺纹(内螺纹)的螺纹 匹配的部分。'`

【讨论】:

  • 正如我所写:我正在使用 ASP.NET CORE MVC(代码优先),我想避免直接在 SQL 中构建视图。存储过程也是如此。
  • 那么它是使用 SP 的好方法,因为如果您在代码中过滤这样的数据,那么它会变得非常复杂。使用 SP 是数据操作的更好方法。
猜你喜欢
  • 1970-01-01
  • 2021-06-22
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多