To my mind, it will make more sense to use 410 gone
status code in this case.
The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.
The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource is intentionally unavailable and that the server owners desire that remote links to that resource be removed. Such an event is common for limited-time, promotional services and for resources belonging to individuals no longer working at the server's site. It is not necessary to mark all permanently unavailable resources as "gone" or to keep the mark for any length of time -- that is left to the discretion of the server owner.
Then, keep the page http://...?id=XX
(don't delete the entry) with the item, but add a mention to inform visitors that this item is definitely no longer available.
For help you in your status code choices, try to take a look at:
- List of HTTP status codes
- Status Code Definitions of the RFC 2616
- RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
[EDIT] about the special case
If one considers that the "removed" item is not really deleted but just marked unavailable, the best is to encourage the user to "reactivate" its item to make his changes.