Merger tous les types de sample_set, ou non ?
En résumé, une colonne de type fixe occupera sa place qu'elle soit NULL ou non, alors qu'une colonne de type variable n'occupera aucune place si elle est vide. Il y a cependant un vecteur de bits en entête de la table, qui recense les colonnes NULLABLE, et occupe un bit par colonne (arrondi à l'octet supérieur).
Web2py créé des varchar pour les string et des longtext pour les text. Les longtext n'étant pas stockés dans la table à proprement dire, occupent toujours la place d'un pointeur. En l'occurrence, le seul longtext que nous avons pour les sample_set correspond à la colonne info, commune à nos trois types de sample_set. La seule colonne qui occuperait donc de la place inutile serait la date.
Donc l'enjeu serait plutôt de voir les performances de la liste. Si nous mettons tout en commun dans une table, il risque d'y avoir des performances similaires pour toutes les listes (patient, sample_set, run) quelque-soit le nombre de chaque type de sample_set. Ce qui relève le sujet de la pagination.
Ceci dit, le nombre de sample_sets reste le même dans tous les cas.
merci Ryan pour ces éléments très précis !