Is there a proper way to link `/home/user/app/public` to `/home/user/public_html`, considering the fact that the target already exists?

If I do `ln -s /home/user/app/public /home/user/public_html`, I end up having `/home/user/public_html/public`.

I guess it would be possible also to inverse the action such as `ln -s /home/user/public_html /home/user/app/public`, however I'm not sure how to avoid `/home/user/app/public/public_html` as the end result.