Understanding how relationship sides works So, I have this relations on my tables (see image) and I need to understand some things. I'll enumerate what I understand and what I need from yours is to say if I'm right or not and in case I'm not give me the good answer.

If general_orders_id is FK on natural_person and legal_person tables if I set onUpdate and onDelete to CASCADE what this mean?

1- When I delete a general_orders the cascade will delete all the records on natural_person and legal_person tables?

2- When I delete a natural_person what happen with the general_orders that points to that person?

In order to maintain a good table structure, data consistency and integrity, what are you're suggestions regarding this topic?
0- CASCADE means to 'replicate' the changes that happens on the 'master' table to the 'details' tables. For simplicity, assume the relation (country, city). Each city[detail] belongs to a country[master], or each city is a child of a country. With cascade, if you delete a country, all cities belong to that country will be deleted. 

In your case, general_orders is the master table (call it the parent). When you delete an order, the referenced rows from natural_person and legal_person will be deleted. 

1- No, not all records will be deleted. Only the referenced one will be. 

2- Nothing will happen to general_order table. (If you delete a city, the country will still be there)

Regarding the design: It depends on your model, but I feel that the design is not right. i.e. I think each order should belong to a 'person', and this person's type is either natural or legal. So, I would have:

grnaral_order(id, ..., person_id, ...)
person(id, type[legal, natural])
natural_person(id, name, ...)
legal_person(id, company_name...)


This is one way, but not necessarily the best one, because it totally depends on your analysis