Architecture Tradeoffs

In SMW there are architecutral tradeoffs. This is a page intended to start a discussion on these.

SMW Triples in SQLStore3
The SQLStore3 consists of multiple tables like
 * smw_di_blob
 * smw_di_number
 * smw_di_time
 * smw_object_ids
 * smw_object_ids

essentially there is a table per SMW Type and a main table smw_object_ids to link things together.

The decision for this Database design was probably influenced by the need for better performance. The trade off here is less maintainability and less understandability.

This design change was done a few years ago in a separate task.

There would be the possibility to have a simple SQL Query that delivers:
 * id
 * subject
 * predicate
 * object
 * type
 * namespace

which might be helpful in a quite a few usecase. There are pro's and cons for the approaches. E.g. a View with the 5 items above might violate the encapsulation principle which might be harmful.

The id column e.g. might be useful to solve https://github.com/SemanticMediaWiki/SemanticMediaWiki/issues/985