4

複数のテーブルを持つMySQLデータベースをセットアップしています。一部のテーブルには、必ずしも同じ目的ではない類似した名前のフィールドがあります。

たとえば、フィールドを持つテーブルusers、フィールドを持つテーブルなどがあります。namecategoryname

私は以前、フィールド名の序文の有無にかかわらずこの設定を見てきました。したがって、上記の例ではuser_namecat_nameなどを使用しています。

これらはすべて別々のテーブルにあるので、この序文の有無にかかわらずデータベースを構造化することに何か利点はありますか?SELECT users.name AS username...結合を使用してPHPを介してデータを呼び出す場合は、を使用するときにフィールドが相互に上書きされないように、を追加する必要があることを知っていますmysql_fetch_array。しかし、一方の方法をもう一方の方法よりも使用することに効率があるかどうかはわかりませんか?

4

3 に答える 3

1

それはあなたの店が何をするか、あなたの好みに依存します。これを改善するプレフィックスについては何もありません。個人的には、名前のままにしておきます。Users.NameそしてOrders.NameProducts.Nameすべてに異なるオブジェクトタイプのタプルが含まれています。

一日の終わりにあなたは一貫性を保ちたいです。cat_とプレフィックスを使用する場合user_は、デザインと一貫性を保ち、すべてのオブジェクトタイプにこのプレフィックスを含めます。私にとっては、少ないほど多くなります。

于 2012-04-06T19:27:28.473 に答える
0

それは本当に好みの問題です。私は個人的にちょうどを使用するアプローチを好みnameます。

ただし、注意すべき点が1つあります。SELECT * FROM ...クエリを実行している場合(そうすべきではありません。常にフィールドを明示的に選択してください)、間違ったデータを選択してしまう可能性があります。

于 2012-04-06T19:27:31.363 に答える
0

不利な点の1つは、誰かが自然結合を使用するのに十分愚かである場合(これは悪い習慣だと思うかもしれませんが、mysqlはそれを許可しているので、それが起こるかどうかを検討する必要があります)、同じ名前のフィールドに結合することになります。偶然。

于 2012-04-06T19:30:04.850 に答える