New SQL structure

Dear all,

obviously, with version 3.6, the structure of the SQL database was radically modified. Is there any explanation or documentation available for the new structure?

Particularly, it seems that bibkeys (“cite_key” in the old structure) are not unique anymore under certain circumstances; e.g. when entries are deleted on one “Client”, the respective entries are not [yet?] dropped from the “field” table. I have some substantial PHP code (behind an interactive website acessing a JabRef-SQL Database) that relies heavily on the bibkeys being unique, so I’m rather concerned…

Thanks for any tips or comments,
Robert

Documentation about the new SQL database scheme?
Here : http://help.jabref.org/en/SQLDatabase
Enjoy!

mlep,

thanks for your reply, but unfortunately that’s not what I asked for. The SQL help page gives information/instructions for JabRef users, but it’s not about the internal structure of the SQL database (tables, fields etc.).

Regards,
Robert

Sorry for the misunderstanding. I am afraid there is no documentation per se about the SQL structure.
You may be able to find the information with the related java code https://github.com/JabRef/jabref/pull/1451/, but this requires some digging
HTH…

The SQL statements are provided there https://github.com/JabRef/jabref/blob/v3.6/src/main/java/net/sf/jabref/shared/PostgreSQLProcessor.java We also support MySQL (https://github.com/JabRef/jabref/blob/v3.6/src/main/java/net/sf/jabref/shared/MySQLProcessor.java) and Oracle (https://github.com/JabRef/jabref/blob/v3.6/src/main/java/net/sf/jabref/shared/OracleProcessor.java)

AFAIK, we introduced shared_id, which is globally unique for an entry. Thus, if one user changes the key, the change should be propagated to all other users. Especially, no duplicates are generated.