我有 3 個(gè)型號,它們?nèi)缦耤lass Table(models.Model): waiter = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='restaurant_table') table_no = models.IntegerField() objects = TableManager()class Order(models.Model): customer = models.ForeignKey(Customer, on_delete=models.CASCADE) food = models.ManyToManyField(OrderFood, related_name='ordered_food') order_status = models.ForeignKey(OrderStatus, on_delete=models.CASCADE) table = models.ForeignKey(Table, on_delete=models.CASCADE) datetime = models.DateTimeField(default=now)class OrderStatus(models.Model): CHOOSE = ( ('Received', 'Received'), ('Cooking', 'Cooking'), ('WaiterHand', 'In Waiter Hand'), ('Delivered', 'Delivered'), ('Paid', 'Payment Completed'), ('Rejected', 'Rejected') ) status = models.CharField(max_length=30, null=False, blank=False, choices=CHOOSE) created_at = models.DateTimeField(auto_now=True) updated_at = models.DateTimeField()實(shí)際上我正在創(chuàng)建一個(gè)餐廳管理系統(tǒng)。因此,這里的餐廳有與一個(gè)或多個(gè)服務(wù)員相關(guān)的桌子。但我需要一個(gè)新功能,即表狀態(tài)。我的意思是,當(dāng)訂單與餐桌主動(dòng)關(guān)聯(lián)時(shí),意味著該餐桌已被預(yù)訂。實(shí)際上這不是問題,因?yàn)槲铱梢酝ㄟ^多種方式做到這一點(diǎn)。一種方法是我將計(jì)算與此表關(guān)聯(lián)的活動(dòng)訂單,如果我發(fā)現(xiàn)任何活動(dòng)訂單,我將返回該表已預(yù)訂。另一種方法是我將在表中添加一個(gè)額外的字段,該字段是一個(gè)標(biāo)志。桌子的標(biāo)志存儲(chǔ)狀態(tài)是否已預(yù)訂,我的意思是布爾字段。但我的問題不是解決方案。我的問題是哪個(gè)更好或者還有其他好的解決方案。請簡要解釋一下我想知道哪種解決方案更好以及為什么。
在 Django Orm 查詢中需要幫助
幕布斯6054654
2023-09-15 17:14:12