@rell_nx

Бредово ли «разрывать» так таблицу?

Пишется скрипт универсального Каталога (товаров). (Родов товаров всего три - "обычные", "цифровые", "товары-услуги")

Есть таблица объектов/товаров. 1-я часть полей чисто "системные", и не меняются от сайта к сайту (напр. published, alias, date_add, date_update, ...). 2-я часть полей от сайта к сайту может меняться (напр. "кол-во", "отгружается в течении" "ширина/высота/длина", "вес", "налог", "артикул", "файл(вложения)", ...) Напр. у цифровых товаров, и товаров-услуг - почти всех этих полей не будет.
Хочется дать возможность пользователю менять удалять/добавлять/изменять поля 2-й части.
Поэтому можно "разорвать" основную таблицу товаров на 2-е. 1-я со "СТАТИЧЕСКОЙ структурой". 2-я с "ДИНАМИЧЕСКОЙ структурой".

(В отличии от таблиц-"Типов товаров" здесь не будет происходить РАЗРЯЖЕНИЯ таблицы. Т.е. напр. 15%процессоров, 22%ноутбуков, 17%мониторов - раскидаются по таблицам. У этих типов есть "непересекающиеся", индивидуальные атрибуты, которые и будут вынесены в отдельные таблицы. Отчего в основной таблице - станет меньше пустых полей. Здесь же, 2-я таблица это не какой то ОТДЕЛЬНЫЙ тип товара. А напротив имеет другой смысл "ОБЩИЙ набор полей - у ОДНОГО определеного сайта/магазина")

Вопрос 1. Насколько бредово так разрывать основную таблицу?
Вопрос 2. Если все же разорвать, то насколько критичным это будет в плане производительности? Если товаров станет, скажем 70-100тыс.?
Вопрос 3. Насколько это плохо, и чем чревато - давать пользователю менять структуру 1-й таблицы (являющейся как бы "входной точкой")? (Просто пометив где-то к каким полям он не имеет доступ)
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 2
@coodan
Срочно читать про нормализацию таблиц и join :))) Пока каша какая-то :)))

Никакого разрежения в норме быть не должно. Ну не сможете Вы обеспечить целостность данных, каша будет. Это должно быть несколько связанных между собой таблиц. Со необходимыми ограничениями, обеспечивающими целостность данных.

Концептуально, у Вас должно быть несколько таблиц "измерений". Например, тип товара - в отдельной таблице. Имеющиеся товары с описаниями - в другой. Естественно, если таблица с описаниями будет ссылаться на таблицу типов товаров. И т.д. И одна таблица фактов. В ней то, что, кем, кому, когда было сбарыжено, например, в виде отсылок к соответствующим таблицам.

А потом собирать, собирать все join-ами.

В общем, читайте, разбирайтесь. С кашей в голове получиться может только каша. Избави Вас господь всю информацию сваливать в одну кучу.
Ответ написан
@asd111
Почитайте про нормализацию баз данных и вопросы исчезнут сами собой
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы