我正在開發一個批處理應用程序,允許用戶提交有關特定車輛信息的請求。用戶可以使用VIN或牌照/州組合提交請求。我提出如下表結構:確保空字段表示數據庫設計不佳?
VehiclesToBeProcessed
vehicle_id(fk)|user_id(fk)|status|start_time
車輛
vehicle_id|VIN|plate|state
我的同事認爲,這是設計不良,因爲每一個紀錄 車輛將具有空的VIN字段,或者空板和狀態字段。相反,他們提出以下建議:
VehiclesToBeProcessed
vehicle_id(fk)|user_id(fk)|status|start_time
車輛
vehicle_id(pk)|field|value
其中車輛條目要麼由一排的VIN :
個1|"vin"|"123
或兩行的板/狀態:
2|"plate"|"abc 123" 2|"state"|"NY"
我認爲第一解決方案將是更容易查詢,而無需任何顯著缺點。哪個設計應該是首選?保證空字段真的是糟糕的設計指標嗎?
我不知道它應該如何處理板/狀態的兩行。如果'vehicle_id(pk)'是一個主鍵,那麼你不能有2行具有相同的vehicle_id。 此外,據我所知,每輛車必須有VIN(可能未知),但不是板。此外,板塊數量隨時間變化(可能會改變)。 – a1ex07 2014-08-29 00:04:35