Okay, so I've got a question that may or may not have a "best answer".
To start, here is a very brief bit of information pertaining to my question. More information than this should not be necessary, but if it is, please let me know.
This is for a browser based game using MySQL as the DBMS and PHP as the backend scripting language -- it is mostly text based, with the only graphical elements being the basic interface. Movement will take place by selecting preset places on a map (i.e., you will not be able to click anywhere on the map and visit it). Not all players will be able to visit all areas, and not all areas will be available to any one player. Players will be able to unlock new areas as they progress. This will be done in a couple of ways; players will have the opportunity to gain the ability to perform certain actions (e.g., swim, fly, dive, etc.) as well as being able to gain access to areas through random events.
I'm trying to find the most efficient way to:
1) represent these areas in the database
2) store in the database which areas a player has access to
For #1, I suppose just a unique (sequential) numerical identifier would suffice. An XY grid system would probably be unnecessary, though thinking about it, such a system could come in handy to say whether or not a player can access a non-ground level area. If they had the ability to fly, they could access areas above Z1. Alternatively, players that could dive would have access to areas below Z1 (in water) or burrowing to give access to areas below Z1 on land.
There is the possibility of hundreds if not thousands of areas, so simply storing a comment separated list of values is out of the question. Unless I'm wrong in thinking that it would be a heavy action to call from the database, parse, and then check against. Which is why I'm reaching out to other programmers to hear what you have to say about storing such values, or a method to checking which player has access to which areas at any one time.
Typing all of this out is helping me to make some planning decisions, but I more than welcome any comments on what I have written so far. Sorry, too, if it seems a bit wordy.
Also, if there are other forums that you could recommend visiting to discuss related programming techniques / tips, please list them here as well!
Thank you in advance.
======
I have also posted this on the MPOGD.com forums.