1

有两个表,一个包含文章,另一个包含那些文章的自定义字段,其中一篇文章与许多自定义字段的关系。

为每个字段进行连接以一次性获取全部数据的效率如何?

还是有更好的方法来允许在 where 子句中使用自定义字段?

我正在考虑这个或更改表模式以适应自定义字段。

4

1 回答 1

0

如果您需要按自定义属性过滤文章,您可以执行以下操作:

SELECT * FROM Article WHERE IDArticle IN(SELECT IDArticle FROM ArticleCustomProp WHERE CustomFieldValue='value')

如果您需要获取所有自定义属性的文章,您可以执行以下操作:

SELECT * FROM Article A LEFT JOIN ArticleCustomProp CP ON A.IDArticle=CP.IDArticle
WHERE A.IDArticle=15

您在这里遇到的一个问题是字段类型。在您的 ArticleCustomProp 中,您可以拥有:

  • IDArticle (INT)

  • 自定义属性名称(字符串)

  • 自定义属性值 (?)

问题是为 CustomPropertyValue 字段提供什么类型。如果您需要混合多种类型的值,则必须找到一种通用方法将数据保存到此字段,而不管数据类型如何。希望它可以帮助你。让我知道我是否可以为您提供任何其他帮助。

于 2014-04-07T19:17:00.007 回答