Revision 17935f41

b/policy/django/models.py
1
from django.db import models
2

  
3
class Limits(models.Model):
4
    lim_id = models.IntegerField(primary_key=True)
5
    lim_desc = models.CharField(max_length=45)
6

  
1 7
class Users(models.Model):
8
    user_id = models.IntegerField(primary_key=True)
2 9
    user_name = models.CharField(max_length=255)
3 10
    user_credit = models.IntegerField()
4 11
    user_quota = models.IntegerField()
5 12
    user_created = models.DateField()
6 13
    limits = models.ManyToManyField(Limits, through='UserLimit')
7 14

  
8
class Limits(models.Model):
9
    lim_desc = models.CharField(max_length=45)
10

  
11 15
class UserLimit(models.Model):
12
    lim_id = models.ForeignKey(Limits)
13
    user_id = models.ForeignKey(Users)
16
    lim_id = models.ForeignKey(Limits, primary_key=True)
17
    user_id = models.ForeignKey(Users, primary_key=True)
14 18
    ul_value = models.IntegerField()
15 19

  
16 20
class Flavor(models.Model):
17
	flv_desc = models.CharField(max_length=255)
18
	flv_cost_active = models.IntegerField()
19
	flv_cost_inactive = models.IntegerField()
20
	flv_detailed = models.CharField(max_length=1000)
21
    flv_id = models.IntegerField(primary_key=True)
22
    flv_desc = models.CharField(max_length=255)
23
    flv_cost_active = models.IntegerField()
24
    flv_cost_inactive = models.IntegerField()
25
    flv_detailed = models.CharField(max_length=1000)
21 26

  
22 27
class VMachine(models.Model):
28
    vm_id = models.IntegerField(primary_key=True)
23 29
    vm_alias = models.CharField(max_length=255)
24 30
    vm_created = models.DateTimeField()
25 31
    vm_state = models.IntegerField()
......
28 34
    flv_id = models.ForeignKey(Flavor)
29 35

  
30 36
class ChargingLog(models.Model):
37
    cl_id = models.IntegerField(primary_key=True)
31 38
    vm_id = models.ForeignKey(VMachine)
32 39
    cl_date = models.DateTimeField()
33 40
    cl_credit = models.IntegerField()
b/policy/django/sqlite3.sql
1
BEGIN;
2
CREATE TABLE "okeanos_limits" (
3
    "lim_id" integer NOT NULL PRIMARY KEY,
4
    "lim_desc" varchar(45) NOT NULL
5
)
6
;
7
CREATE TABLE "okeanos_users" (
8
    "user_id" integer NOT NULL PRIMARY KEY,
9
    "user_name" varchar(255) NOT NULL,
10
    "user_credit" integer NOT NULL,
11
    "user_quota" integer NOT NULL,
12
    "user_created" date NOT NULL
13
)
14
;
15
CREATE TABLE "okeanos_userlimit" (
16
    "lim_id_id" integer NOT NULL PRIMARY KEY REFERENCES "okeanos_limits" ("lim_id"),
17
    "user_id_id" integer NOT NULL PRIMARY KEY REFERENCES "okeanos_users" ("user_id"),
18
    "ul_value" integer NOT NULL
19
)
20
;
21
CREATE TABLE "okeanos_flavor" (
22
    "flv_id" integer NOT NULL PRIMARY KEY,
23
    "flv_desc" varchar(255) NOT NULL,
24
    "flv_cost_active" integer NOT NULL,
25
    "flv_cost_inactive" integer NOT NULL,
26
    "flv_detailed" varchar(1000) NOT NULL
27
)
28
;
29
CREATE TABLE "okeanos_vmachine" (
30
    "vm_id" integer NOT NULL PRIMARY KEY,
31
    "vm_alias" varchar(255) NOT NULL,
32
    "vm_created" datetime NOT NULL,
33
    "vm_state" integer NOT NULL,
34
    "vm_started" datetime NOT NULL,
35
    "user_id_id" integer NOT NULL REFERENCES "okeanos_users" ("user_id"),
36
    "flv_id_id" integer NOT NULL REFERENCES "okeanos_flavor" ("flv_id")
37
)
38
;
39
CREATE TABLE "okeanos_charginglog" (
40
    "cl_id" integer NOT NULL PRIMARY KEY,
41
    "vm_id_id" integer NOT NULL REFERENCES "okeanos_vmachine" ("vm_id"),
42
    "cl_date" datetime NOT NULL,
43
    "cl_credit" integer NOT NULL,
44
    "cl_message" varchar(1000) NOT NULL
45
)
46
;
47
COMMIT;

Also available in: Unified diff