【问题标题】: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
相关资源
最近更新 更多