【发布时间】: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