非常によく似たプロパティを持つエンティティを格納する最善の方法を決定しようとしています。主な違いは、各エンティティが他のエンティティを参照することです。データベースを次のようにセットアップするつもりでした:
entity_a (1-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_b_id|entity_c_id|entity_d_id
entity_b (10,000-1,000,000 Records) [Data changes constantly]
id|created|updated|entity_b_id|category_id|name|entity_c_id|entity_e_id|entity_f_id
entity_c (10,000-10,000,000 Records) [Data changes constantly]
id|created|updated|entity_b_id|category_id|name|entity_a_id|entity_f_id
entity_d (0-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
entity_e (1-100 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_a_id|entity_b_id
entity_f (0-50,000 Records) [Data frequently changes]
id|created|updated|entity_b_id|category_id|name|entity_c
entity_g (10-100 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
entity_h (10-1,000 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name|entity_e_id
entity_i (1-10 Records) [Data rarely changes]
id|created|updated|entity_b_id|category_id|name
ただし、1 つの大きなテーブルを次のように管理する方が簡単であることが示唆されています。
ent (20,000-11,000,000 Records)
id|created|updated|ent_id(b)|category_id|name|ent_id(a)|ent_id(b)|ent_id(c)|ent_id(d)|ent_id(e)|ent_id(f)
この 2 番目の方法の懸念事項は、ID が int(11) になり、主に 0 として設定されるこれらの ID の 6 つの列があるため、テーブル サイズです。
しかし、私の主な関心事は、レコードが一度に多くのユーザーによって非常に頻繁にアクセスされるため、アクセス速度です。私は CodeIgniter を使用しており、そのキャッシング機能を使用してデータベースの負荷をできるだけ多くしたいと考えていますが、データの一部が秒単位で変化するため、これは制限されます。
どんな助けでも大歓迎です。