レコードの管理者承認が必要なテーブルを使用して、レコードが公開されるようにします。私は、主なクエリが承認された(またはまだ承認されていない)レコードを検索するようなテーブルを設計するのに最も適切な方法が何であるか疑問に思っています。フィールドがIS NOT NULLの場合、ブールフィールドとチェックを追加しますか?
照会列は、索引付けされると仮定すると:
- ブールフィールドを使用する任意の速度の利点がありますか?
- カラムがNULLかどうかをチェックすることはベストプラクティスに反しますか?たとえば、
:
id | title | text | approved | approved_dttm
---------------------------------------
1 | ... | ... | 0 | null
2 | ... | ... | 1 | 2017-01-01 00:00:00 ETC
SELECT * FROM table where approved = 1;
注対
id | title | text | approved_dttm
---------------------------------------
1 | ... | ... | null
2 | ... | ... | 2017-01-01 00:00:00 ETC
SELECT * FROM table where approved_dttm IS NOT NULL;
:我々は、承認/承認のない以外の複数の状態を必要としません。いいえ "さらにレビューする必要があります。
承認された日付のIMHOは、冗長データを追加します(承認された日付が設定されている場合は、承認する必要があります)。 NULLは非常に広く使用されているため、人々が扱う共通のものです。 –
approved_dttmで行うことができない承認で何をしますか?答えが無ければ、私はそれを落とすでしょう。 –