有两个表,一个用于保存文章,另一个用于保存那些具有一篇文章与多个自定义字段关系的文章的自定义字段。
为了一次性获取整个数据,为每个字段进行连接效率如何?
或者是否有更好的方法可以在where子句中使用自定义字段?
我正在考虑这个或改变表模式以适应自定义字段。
答案 0 :(得分: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)
CustomPropertyName(STRING)
CustomPropertyValue(?)
问题是给CustomPropertyValue字段的类型。如果需要混合多种类型的值,则必须找到将数据保存到此字段的通用方法,而不管数据类型如何。希望它能帮到你。如果我可以为您提供其他任何帮助,请告诉我。