Salve a tutti. Sto progettando un semplice database e mi piacerebbe avere una vostra opinione in
merito (almeno sapere se è corretto).

Descrizione:

- Ho un insieme di stanze (non posso avere due stanze con lo stesso nome).
- Ogni stanza ha un set di azioni (no due azioni con lo stesso nome dentro la stessa stanza).
- Poi ho una classica tabella che salva gli utenti (per login e registrazione).
- Un utente può effettuare delle azioni in un certo momento (non due contemporaneamente)

Interagisco con il database tramite app Android, e le operazioni che devo fare sono:

- login/registrazione utente
- inserimento/cancellazione di una stanza
- data una stanza, inserisci/cancella un azione
- ottenere tutte le stanze
- data una stanza dammi tutte le sue azioni
- inserimento azione

Questo è il codice SQL che ho generato:

codice:
CREATE TABLE `room` (
  `value` VARCHAR(255) PRIMARY KEY
);


CREATE TABLE `room_actions` (
  `id` INTEGER PRIMARY KEY AUTO_INCREMENT,
  `action_name` VARCHAR(255) NOT NULL,
  `room` VARCHAR(255) NOT NULL
);


CREATE INDEX `idx_room_actions__room` ON `room_actions` (`room`);


ALTER TABLE `room_actions` ADD CONSTRAINT `fk_room_actions__room` FOREIGN KEY (`room`) REFERENCES `room` (`value`);


CREATE TABLE `users` (
  `id` INTEGER PRIMARY KEY AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `email` VARCHAR(255) UNIQUE NOT NULL,
  `password` VARCHAR(255) NOT NULL
);


CREATE TABLE `users_actions` (
  `id` INTEGER PRIMARY KEY AUTO_INCREMENT,
  `timestamp` DATETIME UNIQUE NOT NULL,
  `users` INTEGER NOT NULL,
  `room__actions` INTEGER NOT NULL
);


CREATE INDEX `idx_users_actions__room__actions` ON `users_actions` (`room__actions`);


CREATE INDEX `idx_users_actions__users` ON `users_actions` (`users`);


ALTER TABLE `users_actions` ADD CONSTRAINT `fk_users_actions__room__actions` FOREIGN KEY (`room__actions`) REFERENCES `room_actions` (`id`);


ALTER TABLE `users_actions` ADD CONSTRAINT `fk_users_actions__users` FOREIGN KEY (`users`) REFERENCES `users` (`id`)
Considerando che mi servirà una funzione che mi ritorna tutte le azioni in un formato
leggibile, tipo:

Javino89 | Cucina | Mangiato | Timestamp
Javino89 | Bagno | Wc | Timestamp
Andrea | Bagno | Wc | Timestamp
...

Grazie del supporto