|
|
|
|
移动端

2.6.3 数据表结构

《运维前线:一线运维专家的运维方法、技巧与实践》第2章利用Facter和Django快速构建CMDB,本章将会详细讲解,如何利用开源软件Facter和Django快速构建一个小型的CMDB系统。界面与功能不算复杂,这也是它轻量的体现,本章更多的是提供一种思路,以达到抛砖引玉的作用,仅供大家参考。本节为大家介绍数据表结构。

作者:云技术社区来源:机械工业出版社|2017-04-23 15:18

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


2.6.3 数据表结构

对于数据表结构,前面的定义是比较简单的,有兴趣的读者可以根据自己的实际需求去增加,这里仅列举一个简单的优化例子——IDC表优化。

IDC表前面就一个IDC名称字段,这里将根据作者所在公司的需求来做优化,优化后的字段具体如下:

  1. class IDC(models.Model):  
  2. # 机房名称字段  
  3. name = models.CharField(u'机房名称', max_length=200unique=True)  
  4. # 名称缩写  
  5. short_name = models.CharField(u'名称缩写', max_length=200unique=True)  
  6. # 机房地域  
  7. zone = models.CharField(u'机房地域', max_length=200blank=True)  
  8. # 机房地域缩写  
  9. zone_short_name = models.CharField(u'地域缩写', max_length=200blank=True)  
  10. # 机房地址  
  11. address = models.CharField(u'机房地址', max_length=200blank=True)  
  12. # 机柜U数  
  13. unit_size = models.PositiveIntegerField(u'机柜U数', default=42help_text="机房每个机柜拥有Unit数目")  
  14. # 机柜电数  
  15. power_size = models.PositiveIntegerField(u'机柜电数', default=12help_text="机房每个机柜拥有电力(An)数目")  
  16.  
  17. INTERFACE_TYPE_CHOICES = (  
  18.     (0, '光纤'),  
  19.     (1, '普通'),  
  20.     (2, '其他'),  
  21. )  
  22. # 网络接入方式是光纤、普通还是其他  
  23. interface_type = models.SmallIntegerField(  
  24.     '网络接入', choices=INTERFACE_TYPE_CHOICESdefault=0)  
  25. # 机房所有设备的总带宽  
  26. bandwidth_equipment = models.BigIntegerField(u'设备带宽', default=0help_text="设备带宽(Mbps)")  
  27. # 机房可用带宽  
  28. bandwidth_usable = models.BigIntegerField(u'可用带宽', default=0help_text="可使用最大带宽(Mbps)")  
  29. # 物理接入带宽  
  30. bandwidth_line = models.BigIntegerField(u'接入带宽', default=0help_text="物理接入带宽(Mbps)")  
  31. # 保底带宽  
  32. bandwidth_min = models.BigIntegerField(u'保底带宽', default=0help_text="保底带宽(Mbps)")  
  33. # 报警阀值  
  34. bandwidth_threshold  = models.BigIntegerField(u'报警阈值', default=0help_text="报警阈值(Mbps)")  
  35.  
  36. LINE_MODEL_CHOICES = (  
  37.     (0, '单线'),  
  38.     (1, '双线'),  
  39.     (2, 'BGP'),  
  40. )  
  41. # 机房线路类型是单线、双线还是BGP  
  42. line_model = models.SmallIntegerField(  
  43.     '线路类型', choices=LINE_MODEL_CHOICESdefault=0)  
  44. # 接入线路条数  
  45. line_count = models.IntegerField(u'线路条数', default=1help_text="接入线路条数")  
  46. # 是否冗余  
  47. line_redundancy = models.BooleanField("是否冗余", default=Falsehelp_text="接入线路是否冗余")  
  48. # 是否限速,限速大小  
  49. speed_limit = models.IntegerField(u'限速大小', default=0help_text="限速大小(Mbps, 0:不限速)")  
  50.  
  51. CHARGE_TYPE_CHOICES = (  
  52.     (0, '峰值'),  
  53.     (1, '95值'),  
  54.     (2, '保底'),  
  55.     (3, '计时'),  
  56.     (4, '包月'),  
  57.     (5, '包年'),  
  58. )  
  59. # 计费模式  
  60. charge_type = models.SmallIntegerField(  
  61.     '计费模式', choices=CHARGE_TYPE_CHOICESdefault=0)  
  62. # 是否直连ISP  
  63. isp_direct_link = models.BooleanField("是否直连ISP", default=False)  
  64. # 所属运营商,这里需要再建立一个ISP的类  
  65. isp = models.ForeignKey("ISP", verbose_name="运营商")  
  66.      # 联系人  
  67. contact = models.ForeignKey(UserProfile, related_name="idc_contact"verbose_name="联系人"help_text="IDC机房联系人")  
  68. # IDC经理  
  69. manager = models.ForeignKey(UserProfile, related_name="idc_manager"verbose_name="经理"help_text="IDC经理")  
  70. # 值班人  
  71. duty_officer = models.ForeignKey(UserProfile, related_name="duty_officer"verbose_name="值班人"help_text="IDC机房值班联系人")  
  72. # IDC报障邮箱  
  73. support_email = models.EmailField(u'报障邮箱', help_text="IDC报障邮箱")  
  74. # 公司联系人  
  75. company_contact = models.ForeignKey(UserProfile, related_name="xsj_contact"verbose_name="公司联系人"help_text="公司联系人")  
  76. # 开通时间  
  77. start_time = models.DateTimeField(u'开通时间',  
  78.                                   auto_now_add=True)  
  79. # 到期时间  
  80. end_time = models.DateTimeField(u'到期时间',  
  81.                                   default=datetime.datetime(2140, 1, 1, 0, 0, 1))  
  82.  
  83. memo = models.CharField(u'备注', max_length=200blank=True)  
  84.  
  85. def __unicode__(self):  
  86.     return self.name  
  87.  
  88. class Meta:  
  89.     db_table = 'idc' 

现在这个表结构就是一个复杂的数据表结构,通过修改base_admin.py就可以直接展示了。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Visual Studio 2005+SQL Server 2005数据库应用系

本书主要介绍采用Visual Studio 2005的C#语言为前台,SQL Server 2005数据库为后台的数据库系统开发技术。 全书分为15章,内容包括走进.NE...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊