Je fait un logiciel dans lequel il y a un calendrier, il peut y avoir plusieurs calendrier par usagers.

Cependant je me posais les questions suivantes:

Étant donné que je peux associer ce que j'apelle un objet a une date, un objet étant un item décrit dans une table appelé objet. Lorsque vient le temps de créer une date, je ne sais si cette date a déjà été créé avant, donc quelle serait la meilleure syntaxe sql pour faire un insert ou un update ? Peut-on faire un insert et si il existe un update dans une seule requête ?

Je pourrais toujours faire un select avant, mais c'est une bd partagé, donc entre mon select et mon insert/update quelqu'un pourrait avoir mit un objet, donc si mon select me retourne rien et que quelqu'un a inséré pendant ce temps, ce que mon select me retourne sera faux en fait ..

J'avais pensé utiliser lock tables ..mais je demande votre avis
-------------------------------------------------------------------

Aussi, étant donné que c'est une bd partagé, comment être sûr au moment ou on enregistre que les données que l'on manipule et qu'on enregistre exisent bel et bien dans la bd ?

Par exemple si je décide d'associer une date avec un objet, comment enregistrer seulement si l'objet existe dans sa table ?

Les inconvénients d'une bd partagé, j'en oublie sûrement, mas ce sont mes 2 gros problèmes jusqu'à maintenant

encore ici peut-être lock table le temps de vérifier mais ça fait beaucoup de lock et les autres usagers pourraient être bloqués trop souvent si beaucoup d'usagers utilisent le logiciel en même temps ..
--------------------------------------------------------------

Une question de conception maintenant.
Si je voudrais avoir des notes dont je voudrais savoir qui en fait les modifications et de quelles parties est-ce que la meilleures approche serait une sorte de log de notes un peu comme dans un forum ou chaque auteur à son carré de notes et ne peut modifier que ce qui lui appartient ?

----------------------------------------------------------------------

Merci