Use an ElggObject. This is exactly what they're for. What is your hesitation on using metadata?
im afraid it will affect performence when selecting from a huge table.
in addition - it doesnt seem to be the right architecture. the page is the main entity of the site - it shouldnt derive from elgg object. it should have the same hirarchy as elgg user.
there's no real 'right or wrong way..' ;-)
... 'friend' or a 'follower' of a page and then get updated about events -- can be done for any entity type.subtype.
for performance issues - you should research intio the approrioate metrics before getting too worried or afraid about 'a huge table..' mySQL (can) use(s) the B-Tree (multi balanced structure) indexing mechanism and so access for huge databases.." is catered for ! B-Tree is 'mature' enough (since the 1970's.. until now) to be more than robust for any situation.. there's never been any replacement.
The cost of going a new entity route -- will all be the class/ library code that you will need to write to manage your new entity ;-oO There seemsm to have been no ready-made working 'plugin' design example to easily follow except the built into the core :- users-entity & groups entitity ;-( You have a choice...;-)
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.