CREATE TABLE Session (
SessID INTEGER PRIMARY KEY AUTOINCREMENT,
DoneDate TEXT,
Topic TEXT
)
CREATE TABLE Person (
PersId INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT
)
CREATE TABLE Role (
RoleId INTEGER PRIMARY KEY AUTOINCREMENT,
Name TEXT
)
CREATE TABLE PersonRoles (
PersID INTEGER,
RoleID INTEGER,
PRIMARY KEY(PersID, RoleID)
)
CREATE TABLE PersonSessions (
SessID INTEGER,
PersID INTEGER,
PRIMARY KEY(SessID, PersID)
)
####
sub getActiveSessions {
my ($self, @ids) = @_;
my $idPlaces = (join ', ', ('?') x @ids) || '';
return $self->{'dbh'}->selectall_arrayref( <getActiveSessions(1..7) );
####
$VAR1 = [
[
'Doug',
'Learner',
'Fun with JSON',
'2015-06-27'
],
[
'Bert',
'Teacher',
'Fun with Origami',
'2015-06-27'
],
[
'Greg',
'Learner',
'Fun with Origami',
'2015-06-27'
],
[
'Fred',
'Learner',
'Fun with Origami',
'2015-06-27'
],
[
'Fred',
'Learner',
'Fun with JSON',
'2015-06-27'
],
[
'Carl',
'Teacher',
'Fun with JSON',
'2015-06-27'
]
];
####
use strict;
use warnings;
use DBI;
use feature qw/ say /;
use Data::Dumper;
my $dbh = DBI->connect('dbi:SQLite:monks.sqlite','','', {RaiseError => 1});
my $self = bless { dbh => $dbh };
$dbh->do(<do(<do(<do(<do(<do( < '2015-06-20',
'Fun with SQL' => '2015-06-20',
'Fun with JSON' => '2015-06-27',
'Fun with Origami' => '2015-06-27',
);
while (my ($topic, $done_date) = each %sessions) {
$dbh->do( < { role => 1, sessions => [1,4] },
'Bert' => { role => 1, sessions => [2] },
'Carl' => { role => 1, sessions => [3] },
'Doug' => { role => 2, sessions => [1,3] },
'Eric' => { role => 2, sessions => [1,4] },
'Fred' => { role => 2, sessions => [2,3] },
'Greg' => { role => 2, sessions => [2,4] },
);
while ( my ($pers_name, $properties) = each %people ) {
$dbh->do( <{dbh}->last_insert_id(undef, undef, undef, undef);
$dbh->do( <{'role'} );
INSERT INTO PersonRoles (PersID, RoleID) VALUES (?,?)
SQL
for (@{ $properties->{'sessions'} }) {
$dbh->do( <{'dbh'}->selectall_arrayref( <getActiveSessions(1..7) );