<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="">Thanks for the reply Martin! <div class=""><br class=""></div><div class="">For point 1 I agree that’s a very good point but we need to manage/handle exponential growth in size, for some of our project this highly increased loading time for all of the CRM, happens in a lot of data-oriented projects where we import tons of data from other ERPs (SAP or custom ones) several times a day. Dump of older data, this as backup/audited version would be great IMHO.</div><div class=""><br 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></div></div></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">Il giorno 16 nov 2020, alle ore 10:40, Martin Allen <<a href="mailto:martin.allen@clystnet.com" class="">martin.allen@clystnet.com</a>> ha scritto:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_default" style="font-family:verdana,sans-serif">1) The fact that vTiger stores all the previous values that are changed in a field, is actually a pretty big selling point for a lot of our clients as it provides a full audit trail for them. What does mystify me a little bit is why creating an Email (which is static and doesn't change) gets recorded in mod_tracker_detail (and when your importing LOTs of Emails - which we do) then this table gets exceptionally large!) So keeping the data is key, but checking exactly what is being stored and possible making the structure better (not sure how though) </div><div class="gmail_default" style="font-family:verdana,sans-serif">2) Absolutely! </div><div class="gmail_default" style="font-family:verdana,sans-serif">3) There is a limit to how many columns you can have in a single table, so having two tables does increase the number of fields you can have per module. But being able to specify a field name (ensuring that it is not a duplicate - as that can cause no end of problems!) would be nice.</div><div class="gmail_default" style="font-family:verdana,sans-serif">4)renaming some of the tables makes perfect sense, and ensuring a consistent naming convention (should module names be singular or plural ?) Splitting out the contents of vtiger_activities might help as Emails currently go in there too! </div><div class="gmail_default" style="font-family:verdana,sans-serif">6)Using a more modern DB library would be great!! Or even just the latest version of PearDB would be a start!</div><div class=""><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><p style="font-size:12.8px;color:rgb(80,0,80)" class=""><span style="color:navy;font-family:Verdana,sans-serif;font-size:10pt" class="">Martin Allen</span></p><p style="font-size:12.8px;color:rgb(80,0,80)" class=""><b style="font-size:12.8px" class=""><span lang="EN-US" style="font-size:10pt;font-family:Verdana,sans-serif;color:rgb(51,51,153)" class="">01392 248692 - Main Office<br class="">01392 690659 - Direct Line</span></b><br class=""></p><p style="font-size:12.8px;color:rgb(80,0,80)" class=""><b class=""><span style="font-size:10pt;font-family:Verdana,sans-serif;color:rgb(51,51,153)" class=""><img width="288" height="65" src="cid:image001.png@01CFC1D6.1BCFF790" alt="signature2" class=""></span></b><span style="color:rgb(31,73,125)" class=""></span></p><p style="font-size:12.8px;color:rgb(80,0,80)" class=""><span lang="EN-US" style="font-size:10pt;font-family:Verdana,sans-serif;color:navy" class="">Have you visited our website recently? <a href="http://www.clystnet.com/" style="color:rgb(17,85,204)" target="_blank" class="">https://www.clystnet.com</a></span><span style="color:rgb(31,73,125)" class=""></span></p><p style="font-size:12.8px;color:rgb(80,0,80)" class=""><span lang="EN-US" style="font-size:10pt;font-family:Verdana,sans-serif;color:navy" class=""><br class=""></span><span lang="EN-US" style="font-size:10pt;font-family:Verdana,sans-serif;color:rgb(153,153,153)" class="">The information in this email is confidential If you are not the intended recipient, you must not read or use that information. This email and any attachments are believed to be virus free however no responsibility is accepted by Clystnet for any loss or damage arising in any way from receipt or use thereof. Clystnet Ltd (company reg number 7164503) is based at Silverdown Park, Fair Oak Close, Clyst Honiton, EX5 2UX</span></p></div></div></div></div></div><br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, 15 Nov 2020 at 22:51, Sukhdev Mohan <<a href="mailto:s.mohan@myti.it" class="">s.mohan@myti.it</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;" 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="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;" class=""><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;" class=""><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;" class=""><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;" class=""><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;" class=""><div class="">Best Regards,<br class=""><b class="">Sukhdev Mohan</b> | <b class="">Software Developer</b></div></div><br class=""></div><br class=""></div><br class=""></div><br class=""></div><br class=""><br class="">
</div>

<br class=""></div></div>_______________________________________________<br class="">
<a href="http://www.vtiger.com/" rel="noreferrer" target="_blank" class="">http://www.vtiger.com/</a></blockquote></div>
<span id="cid:83b8c098f065a275_0.1"><image001.png></span>_______________________________________________<br class=""><a href="http://www.vtiger.com/" class="">http://www.vtiger.com/</a></div></blockquote></div><br class=""></div></body></html>