Hi Sean, if you find a simpler way that will work in the OTRS architecture, I'm absolutely open.
OTRS defines database schemas and schema changes in XML, please see scripts/database/otrs-schema.xml. From this, the DBObject creates the SQL files for the different DB types with the help of our "drivers", mssql for example. So there is one common XML source that feeds all the different database types (see also http://doc.otrs.org/developer/3.3/en/html/ch02s02.html for a summary). This means we have no options to perform exceptions for particular databases, which is why I believe adding primary keys to all tables would be the right thing to do. If you have another proposal, please explain it. Regards, mg Am 07.04.14 17:56, schrieb Sean Killeen: > Hi Martin, > > Thanks for being so receptive to the idea and continuing the conversation. > I'm wondering if there might be a simpler answer than what you've proposed. > > SQL Azure doesn't require a primary key on the tables -- rather, it only > requires a clustered index so that it has an indication of how to store the > data. I believe it's very possible that if we create the appropriate > clustered index to instruct SQL Server how to store data at the leaf level, > we don't necessarily need to create a primary key. Additionally, if these > tables were previously small enough to be heaps, we may not need to create > the clustered indexes perfectly. > > Given my understanding of the above, I was wondering if this couldn't be > accomplished with changes to the MSSQL database schema setup & > transformation scripts alone, saving us the necessary work on the drivers, > etc. since they'd continue to operate normally. Unlike a primary key, > adding a clustered index wouldn't introduce constraints -- though I might > be ignorant of problems it would cause elsewhere somehow. > > Is there something I'm missing that would require us to do more work than > that? Happy to put in the work, of course, but I'm thinking we might be > able to accomplish this with less ripple effect and I'm all for that. > > Thanks again, > > > -- > Sean > > > On Mon, Apr 7, 2014 at 7:30 AM, Martin Gruner <martin.gru...@otrs.com>wrote: > >> Hi Sean, hi Mike, >> >> this is a very interesting, but also challenging project. Essentially >> this boils down to adding primary keys to tables that don't have them >> yet. There are a few obstacles though: >> >> - The database drivers of OTRS don't support adding of primary keys to >> existing tables (yet). >> - Once this is done for the framework, we will also need to enforce >> primary keys for all OTRS modules. >> >> So the steps to achieve this would be: >> >> 1. Add the possibility to add primary keys to all database drivers in >> OTRS (mysql, postgresql, mssql and oracle). Maybe Mike could help here >> with the non-mssql databases. This must be covered well with unit tests >> and should be merged as a separate pull request before the work continues= -- Martin Gruner Senior Developer R&D OTRS AG Bahnhofplatz 1a 94315 Straubing T: +49 (0)6172 681988 0 F: +49 (0)9421 56818 18 I: www.otrs.com/ Geschäftssitz: Bad Homburg, Amtsgericht: Bad Homburg, HRB 10751, USt-Nr.: DE256610065 Aufsichtsratsvorsitzender: Burchard Steinbild, Vorstand: André Mindermann (Vorsitzender), Christopher Kuhn, Sabine Riedel Einfache Planung, bessere Übersicht - Mit OTRS 3.3 einfach besseres Service Management - Jetzt downloaden und testen _______________________________________________ OTRS mailing list: dev - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/dev To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev