このように設計された単純なcustomers
テーブルがあります(この質問に関するフィールドのみを報告します):
+ ----------- + --------------- + ---------------- +
+ customer_id + invoice_address + ship_address +
+ ----------- + --------------- + ---------------- +
+ 33 + 234, Walnut Ave + null +
+ ----------- + --------------- + ---------------- +
+ 47 + 66, Smart Ave + null +
+ ----------- + --------------- + ---------------- +
+ 47 + 4, Cool Ave + 45, Dark Street +
+ ----------- + --------------- + ---------------- +
行の ship_address が null の場合は、配送にも顧客の請求先住所を使用する必要があることを意味します。
1 番目の質問:これで十分な設計ですか、それともすべてのnull
ship_address
フィールドに請求書の住所 (同一であっても) を入力し、残すべきではありませんnull
。
2 番目の質問:ship_address
そのような設計を維持する (設計が悪い場合でも)、行ごとに常に 1 つのアドレスを返す SELECT クエリを (可能であれば) 作成するにはどうすればよいですnull
かinvoice_address
?
SELECT CONCAT_IF_SHIP_ADDRESS_NOT_NULL_OTHERWISE_USE_ONLY_SHIP_ADDRESS(invoice_address, ship_address) AS address FROM customers;
MySQL DB のクエリ。
ありがとう、