Question: Currently, I am dealing with database structure and I would like to get a piece of advice.

I have 2 objects: banner and ad.

For them I may create banner table and ad table, which will hold all the info about each entity. As main advantage I see that everything related to 1 entity is in this entity table. 

On the other hand, I may some table like:
entity\_properties.
It will hold value\_id entity\_id property value. The main advantage is that for entities I need only some basic fields, other fields can be put in this table.

But I am not sure which is the better practice and performance?
Thanks in advance.

Answer: 
For the sake of normalization it is always better to have 1 table per 1 entity. Normalization is an aim or an approach to minimize redundancy and dependency in relational databases . In your case banner and ad are different entities. For now it seems that you can use them in same table. So "redundancy" is not the case. However, what if you want to add some additional fields later?

In addition code complexity and readability is another issue. For instance, when you add different types of object in same table you need to add an internal logic to differentiate them in your code. This means you have complex and probably less readable code.
That depends on the exact use of your system and the attributes/values you're trying to store.

As I see it, I think it would be good to save the important and required information in one table, your 'ad' table, and the rest in the 'ad\_entities' table, with an ad\_id, entity\_name, entity\_value, or something similar for your application.

This is a good performance choice since you'll be able to get all the information about the current Ad or all Ads using just one quite simple query, which your objects can easily figure out.