1

Currently storing 3 bits of information about an persons name.

name,nicename,searchname = ("Mr.Joe bloggs", "Mr-Joe-bloggs", "mrjoebloggs")

Name used for a user's display name, nicename for the url and searchname for realtime searching the database (so speed is a must, milliseconds matter!)

Currently one table holds all 3 fields, but how much more effient would it be to store each field in a seperate table?and relate everything by id?

or would that just waste extra selects relating them to one another? DB will have over 100m records.

4

1 に答える 1

1

これら 3 つのフィールドを保持することを主張する場合、すべてのデータと 1 対 1 の関係を作成することになります。それらをすべて同じ行に保持することは理にかなっています。

ただし、名前だけを保存した方がよい場合もあります。「素敵な名前」が必要な場合は、正規表現を使用して、ピリオドとスペース (およびその他の文字) をハイフンに置き換える (または削除する) ことができます。ユーザーが「mr joe bloggs」を検索する場合、3 つの単語を分割して LIKE 句を使用すると、単純な検索アルゴリズムを作成できます。

于 2012-06-01T01:39:01.810 に答える