В настоящее время я работаю над webapp, который сильно зависит от количества данных из базы данных. Рассмотрим следующий случай.Mysql создает множество таблиц или меньше таблиц, что лучше?
A) дизайн таблицы с предопределенными таблицами только
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
3 |Stefen
-------------------
3)table ownership
--------------------------------
id|vehicle_type_id|user_id|count
--------------------------------
1 | 1 |1 |30
2 | 1 |3 |20
3 | 3 |2 |13
--------------------------------
B) дизайн Таблицы с динамически создавать таблицы с помощью приложения логики, то есть, когда новая запись идет в vehicle_type мы создаем новую таблицу с этим имя
1)table vehicle_type
------------------
id|name
------------------
1 |car
2 |truck
3 |bike
-------------------
2)table users
-------------------
id|name
-------------------
1 |James
2 |John
-------------------
3)dynamic_table car
-------------------
id|user_id|count
-------------------
1 |1 |20
2 |2 |10
-------------------
3)dynamic_table truck
-------------------
id|user_id|count
-------------------
1 |3 |15
2 |2 |20
3 |1 |12
-------------------
4)dynamic_table bike
-------------------
id|user_id|count
-------------------
1 |1 |4
2 |2 |12
-------------------
Во втором случае таблица vehicle_type выступает в качестве ключа для динамических таблиц. Вначале я использовал право собственности на таблицу для хранения данных о количестве автомобилей, которые есть у каждого владельца, во втором я создаю динамические таблицы для каждого типа транспортного средства и сохраняю количество каждого типа транспортного средства в отдельной таблице. Я думаю, что этот подход сделает масштабирование базы данных относительно легко и очень много запросов, чем использование одного владельца таблицы.
Я никогда не работал с большим набором данных, но у этого наверняка будет много данных. Обратите внимание, что вышеуказанные таблицы используются в качестве сампелей, не являющихся частью реальной прикладной логики.
Просьба предложить достоинства и недостатки каждого метода.
Спасибо
Что такое «динамический» стол? –
IMHO, динамические таблицы не являются хорошей идеей для любых типов постоянных данных. Они используют временные данные, для которых вам не нужна долгосрочная жизнеспособность. В вашем случае я бы определил «большой набор данных». Mysql обрабатывает миллионы строк просто отлично на этом типе данных с правильной индексацией. –
@ypercube Я просто ссылаюсь на таблицы, созданные с использованием логики приложения, когда они нам понадобятся. –