0

単純な状況だとしましょう。ウェブサイトのテーブルがuserあり、メール確認用のアクティベーションコードをどこかに配置する必要があります。

より良いオプションは何ですか:

  1. activation_codeテーブルの列user。これは、電子メールがすでに検証されているときにNULLまたは役に立たないデータを取得することを意味します。しかし一方で、私はユーザーごとに1つのコードしかなく、テーブルは1つ少ないと確信しています。
  2. コード用の別の表。無駄なデータやNULLはありません。ただし、1つの列(+ user_id)用の追加のテーブル。

NULLを使用しないようにしているので(それは私がそう教えられたためですが、正しいかどうかはわかりません)、2番目のオプションを選択します。しかし、私は多くのWebアプリで最初の方法を見てきました。そのため、この質問をします。

4

1 に答える 1

3

私の意見では、データをより適切にモデル化するため、別のテーブルを推奨します。また、同じユーザーに対して複数のアクティベーションコードを生成することもできます。これは便利です。

一方、私はNULLを使用しないという慣行に完全に同意しません。通常は怠惰に起因する可能性がある理由で、それらを回避することを提唱する人がいることは知っていますが、実際には、NULLはデータのモデリングに非常に役立つ可能性があります。それらには、欠落データまたは未知の値を表すことを目的としているため、この目的に必ず使用する必要があります。

于 2013-03-04T21:56:28.813 に答える