from django.db import models

# ORM - 对象关系映射
# 对象模型  <--->   关系模型
# 实体类    <--->   二维表
# 属性      <--->   列
# 对象      <--->   记录


class Dept(models.Model):
    no = models.IntegerField(db_column='deptno', primary_key=True, verbose_name='部门编号')
    name = models.CharField(db_column='dname', max_length=20, verbose_name='部门名称')
    location = models.CharField(db_column='dloc', max_length=10, verbose_name='部门所在地')
    # excellent = models.BooleanField(default=0, verbose_name='是否优秀')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'TbDept'


class Emp(models.Model):
    no = models.IntegerField(db_column='empno', primary_key=True)
    name = models.CharField(db_column='ename', max_length=20)
    job = models.CharField(db_column='job', max_length=10)
    # mgr = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL)
    mgr = models.IntegerField(null=True, blank=True)
    sal = models.DecimalField(max_digits=7, decimal_places=2)
    comm = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True)
    dept = models.ForeignKey(Dept, db_column='dno', on_delete=models.PROTECT)

    class Meta:
        db_table = 'TbEmp'


from django.db import models

# ORM - 对象关系映射
# 对象模型  <--->   关系模型
# 实体类    <--->   二维表
# 属性      <--->   列
# 对象      <--->   记录


class Dept(models.Model):
    no = models.IntegerField(db_column='deptno', primary_key=True, verbose_name='部门编号')
    name = models.CharField(db_column='dname', max_length=20, verbose_name='部门名称')
    location = models.CharField(db_column='dloc', max_length=10, verbose_name='部门所在地')
    # excellent = models.BooleanField(default=0, verbose_name='是否优秀')

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'TbDept'


class Emp(models.Model):
    no = models.IntegerField(db_column='empno', primary_key=True)
    name = models.CharField(db_column='ename', max_length=20)
    job = models.CharField(db_column='job', max_length=10)
    # mgr = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL)
    mgr = models.IntegerField(null=True, blank=True)
    sal = models.DecimalField(max_digits=7, decimal_places=2)
    comm = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True)
    dept = models.ForeignKey(Dept, db_column='dno', on_delete=models.PROTECT)

    class Meta:
        db_table = 'TbEmp'


# ORM - 对象关系映射 # 对象模型  <--->   关系模型 # 实体类    <--->   二维表 # 属性      <--->   列 # 对象      <--->   记录 # excellent = models.BooleanField(default=0, verbose_name='是否优秀') # mgr = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL)