...and dhe data will be automaticly inserted into the column info.author_id
NO - No "automatic" insertion will take place. YOU have to insert it in BOTH tables explicitly. With the design I gave you (if you enforce referential integrity), you may at any time provide an entry in Author and NOT enter it Info, BUT you may NEVER enter a value in Info UNLESS it first exists in Author. Thus, you must FIRST enter the value in Author and THEN you may enter it in Info.
question two:how can I get two or three reports
Considering that you asked a very vague question, here's the best answer I can furnish:
First You get report One
Then report Two
THEN report Three :)
Seriously, you need to be very explicit. You should be able to retrieve whatever data you need from the design above in a single query, BUT if you need to populate three different sections of a web page, you just need to do so from the result set. Meaning, you don't have to forcibly execute three separate queries.
To Select ALL the data:
SELECT a.firstName,a.lastName,p.name,p.country,b.title,b.year,b.quantity,b.type,i.*
FROM (((Author a
INNER JOIN Info i ON a.id=i.Author_id)
INNER JOIN Book b ON b.id=i.Book_id)
INNER JOIN Publisher p ON p.id=i.Publisher_id)
To select info about a specific Author (based on his/her id):
SELECT a.firstName,a.lastName,p.name,p.country,b.title,b.year,b.quantity,b.type,i.*
FROM (((Author a
INNER JOIN Info i ON a.id=i.Author_id)
INNER JOIN Book b ON b.id=i.Book_id)
INNER JOIN Publisher p ON p.id=i.Publisher_id)
WHERE a.id=3
Or …