How to implement Asset Inventory? I would like to create an Asset Management Inventory for our corporate helpdesk. There is a list of assets (laptop, phones etc) which our ICT staff members can borrow from the helpdesk. Members would not have direct access to the system, the main user would be just a helpdesk admin managing the loans. 

These are the entities I'm planning to use but I'm not really sure how should I design my content types and how to link them with each other.

Borrower Information


Full Name
Username
E-mail
Telephone
Area
Office No.


Asset Details


Name
Model
Scope.


Loan Information


Borrowed On (date)
To be returned (date)
Updated On (date).


I was thinking about using a Field Collection as a Loan History as part of every Asset, in which the Borrower and the Loan Information would exist. So every time I need to create a new Loan record, I would choose the Borrower as an entity and fill in the Loan Information. If the Asset or the Borrower doesn't exist in the system, I would like the admin to be able to add them.

I'm not familiar with the Entity Reference module and I don't know if it would fit to my scenario. I need some guidance I'm afraid.
Start with creating 3 content types like so:


Borrower, with as fields the various attributed you mentioned within Borrower Information.
Asset, with as fields the various attributed you mentioned within Asset Details.
Loan, with as fields the various attributed you mentioned within Loan Information.


Then use the Entity Reference module to add 2 more fields to Loan:


a 1st entity reference field to indicate the Borrower.
a 2nd entity reference field to indicate the Asset.


Then use the Views module to build all sorts of lists. Such as a Loan history, which could simply be a list all nodes of type Loan, in which you'd also want to add a Views "relationship" to Borrower and/or Asset. You could also add some Views filter(s) to further  limit this list to fit your needs, e.g. to list all available (not borrowed) assets (as in your comment to my answer). For this kinds of lists I often use the dataTables module to make the searching even more flexible/dynamic (in the browser). Refer to my answer to "How to display the data of a View in table format?" for (way) more details on that.

You could easily take this a step further by also adding the Rules module to the mix. E.g. to schedule an eMail reminder to the borrower X days before the "to be returned date". However, for this to work (make sense), you'll also want to add an extra field (of type date) to the Loan type to register the actual return date of the Asset (which you should also add IMO even if you don't want this extra Rules feature). Assuming you added such return date field, you'd want to check it's value in such eMail reminder (to avoid sending reminders for Assets that were returned already).