मैं खुद को प्रशिक्षित करने के लिए डीजेगो के साथ एक निजी परियोजना का निर्माण कर रहा हूं (क्योंकि मुझे Django पसंद है, लेकिन मुझे कौशल याद आती है)। मेरे पास मूलभूत आवश्यकताएं हैं, मुझे पाइथन पता है, मैं तीन बार नहीं तो Django पुस्तक को दो बार ध्यान से पढ़ता हूं।अमूर्त वर्ग (सामान्य संबंध) के लिए विदेशीकी
मेरा लक्ष्य एक साधारण निगरानी सेवा बनाना है, एक Django- आधारित वेब इंटरफेस के साथ मुझे अपने "नोड्स" (सर्वर) की स्थिति की जांच करने की इजाजत दी गई है। प्रत्येक नोड में कई "सेवाएं" होती हैं। आवेदन प्रत्येक नोड के लिए प्रत्येक सेवा की उपलब्धता की जांच करता है।
मेरी समस्या यह है कि मुझे नहीं पता कि मेरे डेटाबेस में विभिन्न प्रकार की सेवाओं का प्रतिनिधित्व कैसे किया जाए। मैं दो "समाधान" के बारे में सोचा:
- एकल सेवा मॉडल को "ServiceType" क्षेत्र के साथ, और खेतों के साथ एक बड़ी गड़बड़। (मुझे डेटाबेस मॉडलिंग में कोई अच्छा अनुभव नहीं है, लेकिन ऐसा लगता है ... मुझे "बुरा")
- एकाधिक सेवा मॉडल। मुझे यह समाधान पसंद है, लेकिन फिर मुझे नहीं पता कि मैं इन क्षेत्रों में अलग-अलग सेवाओं का संदर्भ कैसे दे सकता हूं।
यह मेरा models.py फ़ाइल से कुछ ही अंश है:
from django.db import models
# Create your models here.
class service(models.Model):
port = models.PositiveIntegerField()
class Meta:
abstract = True
class sshService(service):
username = models.CharField(max_length=64)
pkey = models.TextField()
class telnetService(service):
username = models.CharField(max_length=64)
password = models.CharField(max_length=64)
class genericTcpService(service):
pass
class genericUdpService(service):
pass
class node(models.Model):
name = models.CharField(max_length=64)
# various fields
services = models.ManyToManyField(service)
बेशक
, ManyToManyField के साथ लाइन फर्जी है (मैं सब कुछ है कि इस समस्या से संबंधित नहीं है निकाला गया)। मुझे नहीं पता कि "* सेवा" के स्थान पर क्या रखा जाए। मैंने ईमानदारी से इस बारे में समाधान की खोज की, मैंने "सामान्य संबंध", ट्रिपल-जॉइन टेबल के बारे में सुना, लेकिन मैंने वास्तव में इन चीजों को समझ नहीं लिया।
इसके अलावा, अंग्रेजी मेरी मूल भाषा नहीं है, तो डेटाबेस संरचना और अर्थ विज्ञान, मैं क्या पढ़ के अपने ज्ञान और समझ में आने के लिए सीमित है (लेकिन है कि मेरी समस्या नहीं है)
विस्तृत, कोड से भरा, उत्तर के लिए धन्यवाद। @ जो जे में से एक के साथ, मुझे पूरा यकीन है कि यह मेरे आवेदन के मॉडलिंग में मेरी मदद करेगा। यह साइट बहुत बढ़िया है, इसके उपयोगकर्ता भी :) – pistache
ठीक है, यह एक अच्छा समाधान था जिसे आपने यहां दिया था, विशेष रूप से इनहेरिटेंस मैनेजर चाल, और पूरे django-model-utils पैकेज। एक बार फिर धन्यवाद – pistache