I new in database design. What is better option for product attribute database design for cms?(Please suggest other options also).
option 1: 1 table
products{
id
product_name
color
price
attribute_name1
attribute_value1
attribute_name2
attribute_value2
attribute_name3
attribute_value3
}
option 2: 3 tables
products{
id
product_name
color
price
}
attribute{
id
name
value
}
products_attribute{
products_id
attribute_id
}
You're making a common mistake of database design, storing name in one column and value in another column. This is not a relational database design.
Each attribute should be named by the column name. Color, pages, shirt size, publish date, should be column names.
If each product type has a distinct set of attributes, there are other solutions. See my answers to:
Also please read this story: Bad CaRMa: Introducing Vision before you implement a database designed around name-value pairs as you are doing.