What should be the design and logic of the data table when publishing paid information and paying for the top at the same time?

what should I do logically if I want to set the top (charge) while publishing information (free, charging)? How can the data table be designed properly? Has not been clear about the train of thought, hope that experienced gods to give guidance.

which tables need to be involved? What fields should each have? What should the business process look like?

for example, what if the post is successful but the payment fails? When paying again, should it be a combined payment (release fee + top fee) or a separate payment? What about the previous order?

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1e766aa-5d5.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1e766aa-5d5.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?