Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, я задался вопросом, как лучше и правильно сделать.
А именно, есть модуль (опции) у которого есть таблица из 4 столбцов, где 3 столбца это id (порядковый номер строки, id товара и id модуля)
Я делаю модуль в котором будут другие значения не связанные со значениями первого модуля (дополнительно 7 столбцов), а как дополнение к тому модулю. При этом планирую расширение функций, внесение новых столбцов.
По итогу меня волнует 4 вопроса:
1. Создать отдельную таблицу, где общее между ними будет 3 столбца это id (порядковый номер строки, id товара и id модуля) или добавить дополнительные столбцы в стандартную таблицу без создания дополнительных таблиц, чтобы не делать лишние 3 столбца, как id, или в будущем расширении функционала использовать столбцы которые будут пустыми? При таком подходе, данные будут не все нужны и будут создаваться пустые ячейки. Вот и стоит выбор, или 3 лишних столбца id или пустые ячейки в каком-либо столбце. Отсюда возникает второй вопрос.
2. Какая выборка данных быстрее "Select * Form" или с указанием нужных столбцов "Select stolb1, stolb2 Form" (на что больше тратит время, на вывод всей строки или он отсеивает ненужные, или как)? При этом в стандартном модуле выборка идёт так "Select * Form", поэтому не хочу добавлять столбцы в стандартную таблицу, чтобы в пустую не теряло время на вывод ненужных ему столбцов от моего модуля, чтобы не вносить изменения в оригинальный запрос.
3. Как влияет пустая ячейка на работу БД, если, например, их будет тысячи, создавать дополнительный вес?
4. Где быстрее будет искать, в одной таблице в 10000 строк или в двух по 5000 строк?
Отредактированно buslikdrev (16.09.2017 21:55:17)
Неактивен
Единого решения нет, но чаще делают 2 таблицы. Все зависит от частоты запросов каждого типа.
Пустые колонки занимают какое-то место (в зависимости от типа данных)
SELECT * в любом случае плохая практика.
Неактивен
rgbeast написал:
Единого решения нет, но чаще делают 2 таблицы. Все зависит от частоты запросов каждого типа.
Пустые колонки занимают какое-то место (в зависимости от типа данных)
SELECT * в любом случае плохая практика.
Спасибо за ответ, я так и сделал, не создал на перёд таблицы, а сделал только то, что нужно и не буду делать, чтобы пустые ячейки висели. Также сделал отдельную таблицу, чтобы при большом количестве товаров меньше было строк.
При выборке указал то, что нужно, а не вывод всего.
Неактивен