我有这些表:
我必须区分一个订单:它可以是特定桌子的订单或外卖订单。如果是特定表的订单,我只需要存储表号和当前在该表上的人数;如果是外卖订单,我只需要存储“预订”订单的人的姓名(他们告诉我他们不想要姓氏和时间,只需要名字)。
我怎样才能做到这一点?我想在 Orders 表中添加 3 列,table_number (INT)
, n_people_in_table (INT)
, take_away_name (VARCHAR)
,所以如果订单是针对表的,我将填充table_number
andn_people_in_table
字段,并且take_away_name
将为 NULL。否则,如果订单是外卖订单,我将填充take_away_name
字段;table_number
并且n_people_in_table
字段将为NULL。
但我不太喜欢这种解决方案,我认为这不是一种优雅的方式。最好的方法是什么?
这不是最好的方法。每种解决方案都有不同的优缺点。这在未来可能会改变。
我会为每种订单类型使用离散表,并具有引用完整性:
将来您可以添加其他类型的订单;一个例子: