How can I recognize a bitcoin transaction from a given person?
It would be possible if you can generate multiple receiving address for each transaction. That can be done using your public and private keys.

Give each user a separate address of yours. Then you should be able to track.