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:
Considerando che mi servirà una funzione che mi ritorna tutte le azioni in un formatocodice: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`)
leggibile, tipo:
Javino89 | Cucina | Mangiato | Timestamp
Javino89 | Bagno | Wc | Timestamp
Andrea | Bagno | Wc | Timestamp
...
Grazie del supporto![]()

Rispondi quotando