heres the situation. I have a table called as maps coordinates the schema is like below:
map_coordinates:
item | item_id | latitude | longitude
The idea is that this table contains a list of coordinates of different items, they could be a note, a classifieds post, an event etc. I want to be able to set it up so I have a result set as below:
item | name of item | latitude | longitude
Consider that all events, classifieds and notes are in separate tables. How could I be able to set this up as I need to show all the coordinates on a google maps along with the name of the element i.e if its a classifieds – the title of the ad, an event the title of it etc without having to make alot of sql queries.
I have the code to show it on the map – I just need to grab the details as such. Or do I have to redo my database design here?
========================
EDIT
Actually I have a number of tables in my database such as notes, classifieds and events etc. The point is that an item in the maps_coordinates table refers to the type of the element i.e if its a note or event and teh item_id is the actual id of that event. I don’t want to get stuck with using joins here because that would involve alot of tables. Besides I just need to grab basic information as in just the title to help in populating the map so when I hover over the individual markers I don’t have to make an ajax call just to show basic information of the element at the marker.
The other tables have their own definitions but all of them have a similar title field and it is this title field I wish to show in the same tuple as the coordinates. Or should I denormalize my tables here and have a duplicate entry for title sin the map_coordinates?
You can do this by creating a view that combines each of the common elements from the separate tables. In your example note, classifieds post, event, etc.
Simply add a new DataType for each table you have that you want included in your common elements. You can now set up one query that joins to the viewCommonElements view.
If a new element is created later on just modify the view and add a union select block giving it a unique datatype. You can use the DataType to distinguish the different common elements from each other.
I’ve used this method several times to harmonize dis-similar but common data.