<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi All,<div class=""><br class=""></div><div class="">I thinks we all need to start addressing the elephant in the room. There are multiple things that can be improved and the most important one is the DB structure.</div><div class="">I see these problems/bottlenecks, please follow up with your impressions/thoughts and if you find other please add.</div><div class=""><br class=""></div><div class="">1. vtiger_modtracker_basic and vtiger_modtracker_detail: these table increase in size exponentially as the data grows, this slows down the db very much.</div><div class="">2. All the _seq tables: why can’t we just use auto_increment? It would be safer and there would be al most 50% less tables.</div><div class="">3. All the cf tables: why can’t we create the custom field in the main table with the name the dev choses instead of a cf_#### where #### is an arbitrary number with no meaning at all post creating.</div><div class="">4. Names for the standard tables: for instance if the module/entity in the crm is To Do you can’t store it in vtiger_activities. I propose to standardise naming scheme.</div><div class="">5. Implement True Object Relationship Mapping: frankly it would be a much more good thing If we could interrogate for entity and get the connected entities without doing n queries and cycle/traverse through and will lead to cleaner queries.</div><div class="">5.a Use of ORM such as Eloquent or Doctrine2 could be very good IMHO</div><div class="">6. Ditch AdoDB in favour of some more modern Library, even php’s native PDO is better, it might even have a low footprint.</div><div class="">7. Refactoring of the db structure in general will be a good step to improve the situation.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div>Best Regards,<br class=""><b class="">Sukhdev Mohan</b> | <b class="">Software Developer</b></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>

<br class=""></div></body></html>