How to make new table in database

My Elgg site main feature is search . I think it will be more efficient to make new table than use metadata (because if i use metadata it need so many JOIN)

i want to make new table with column = guid, category, price, city


how i make it ?

  • You might want to try out Maybe this plugin in connection with a solr installation is a better (and safer) way to improve the search functionality than playing with custom database tables.

  • You say (Safer) ? can you tell me what the danger of custom database table ? So I can prevent it. I choose custom database table because I want full control of searching procces (to change , order, make my own search algorithm)

  • What I meant it safer in the sense of not breaking the integrity of the database and end up with a broken site due to errors in the database. With a custom database you would also need to maintain the table not only to add new rows on addition of content but also delete rows if the corresponding content is deleted or you would show search result pointing to non-existing content. Additionally, Elgg has an access control system for content and the Elgg search does take into account the access level of content objects to not provide search results the user has no access to. As the access level can be edited at any time you would also have to take into account the present access level of any content in your custom table to prevent search results showing up that are not accessible. Also, future updates of Elgg can change the database scheme so you might have to update your own custom table and custom search algorithm to take into account any database scheme change if the change is not compatible with your custom code (not that it might be necessary in any case but you might have to if you want to update your site to a new major Elgg version). Elgg 3.0 will bring such a change in the database scheme with merging some tables. Maybe this already makes it unnecessary to work with a custom search table as less joins should be necessary then.