ER-Model for Borrowing-Lending-Network? I plan on creating my first database so this is going to be a newbie question. My database is supposed to be for a Borrowing-Lending-Network where users can borrow products from other users. Creating one user account should be sufficient for being able to borrow and lend and the same time. The only exception should be that a user cannot borrow products that were offered by himself.

So my question is which of these two options is the better one:


Having one entity for user which can borrow and lend. Entity name "USER".
Having two different entities for both borrowers and givers in order to prevent a user from borrowing his own products?
Have a single User table.  Then if anything changes, such as a phone number, it changes for the lender and the borrower simultaneously without awkward reconciliation between the two tables.

Your Loan table will look something like this

Loan
----
LenderID        -- A foreign key pointing to User
BorrowerID      -- Also a foreign key pointing to User
ItemID


Then create a constraint on the table to ensure LenderID &lt;&gt; BorrowerID.  You don't say which RDBMS you're using but many of the major ones support this.  If anyone tries to lend an item to himself the DBMS will throw an error and refuse to store the data.