Temporary User / Current User - Shopping Cart Items

For the benefit of anyone who lands on this thread later:

I have now fixed the issue of recognising the current user (logged out) cart items by creating my cart counter text element with:

Do a search for… ‘Gifts’, with constraint Created by = ‘Current user’

(found this method in this thread: 'How To' create a new thing 'by user' (created by field) before user logs in)

I am still a little confused as to the optimal database setup for my items based on @cmarchan comment above.

Why does the Cart Line Item have a Cart field? I would have expected the following relationship:

User > has a Cart Attribute(does this need to actually be created at any point or is that implied by the default attributes of the User?)
Cart > has a List of Product Attribute
Product > has Price / Colour / Name etc. Attributes

Is a Cart Item also needed between Cart and Product here and if so why? If it is only for quantity, is that not implied by having 2 items in the Cart of the same exact attributes?

Many thanks again