Just wanted to share how a volunteer Admin for one of our projects is handling assets - e.g. Table assignments for Events; Room assignments for Camp; Equipment etc.
Warning: must be abstract thinker - and you'll never look at Tables the same :-)
Let's look at Table assignments for Events - as I have the site open and can pull in some screenshots - to Demo for you how this could work:
Contact Types
CiviCRM will let you create Contact sub-types -> Event Table is a Contact sub-type -> it's a banquet table;
Relationships
CiviCRM will let you define custom Relationship Types between Contacts - so you can define an Has Guest and Is Guest relationship (between Tables and Individuals)
Table View
There are three people sitting at this Table at the moment; As you can see we're using yet another relationship to identify that 'Regular' Table host (for a monthly recurring Event).
Webform CiviCRM
Since you're on Drupal you can add-on Webform CiviCRM - this is maintained by one of CiviCRM's Core Team members @coleman - with that we can now:
a) Email the Regular Table host of the next upcoming Event
b) Regular Table host already has a relationship with a Table (we configure webform_civicrm to automatically load it)
c) We also configure webform_civicrm to also also load the Contacts with whom the Regular Table host has a (normally sits at my table) relationship
d) And b/c it's an Event we also want to know if they actually will attend the next Event -> so we configure webform_civicrm to also offer the option of Event Registration -> RSVP
Table Management
If we want to move Mark -> to another Table -> we simply -> in his Relationship Tab; divorce/delete his relationship with Table 99 and add a new relationship with another Table:
Housing / Room bookings - can be done just the same
create a webform_civicrm where Contacts register: Contact, Family
Members, Relationships -> and user-select a Relationship option -> to
indicate their preferred Housing (shared, individual, family e.g.)
add payment to the form if this is a paid registration (or deposit);
with token based payment processors you can get Card on File ability
(make it a recurring series with two installments; charge deposit
now; adjust date and $amount if needed and automatically charge the
card for second payment later);
in CiviCRM - you'll be able to move Contact from having a
relationship of type "individual" -> with a Room called "Individual"
-> to having a relationship of type "individual" with Room called "Individual 04" - just as an example.
What we can't do just yet - is have a maximum number of Relationships. So right now we occasionally get too many guests at a
Table! That still requires eyes from an Admin. It will take some code
to add that maximum number of Relationships - I may be able to get
into that at some point.
But everything I've shown here (above) is all out of the Box - if you
can manage to wrap your head around Relationships to Tables and
Rooms;