If you need to filter articles by a custom property you can do:
SELECT * FROM Article WHERE IDArticle IN(SELECT IDArticle FROM ArticleCustomProp WHERE CustomFieldValue='value')
If you need to get and Article with all its custom properties you can do:
SELECT * FROM Article A LEFT JOIN ArticleCustomProp CP ON A.IDArticle=CP.IDArticle
WHERE A.IDArticle=15
One problem that you have here is field type. In your ArticleCustomProp you can have:
IDArticle (INT)
CustomPropertyName (STRING)
CustomPropertyValue (?)
The problem is what type to give to CustomPropertyValue field. If you need to mix multiple types values you have to find a generic way to save data to this field, regardless the data type. Hope it helps you. Let me know if i can assist you with anything else.