[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильная архитектура таблиц в MySQLi
Миша
Я электромонтёр biggrin.gif кто ещё не знает, и для себя решил сделать скрипт.

Есть Товар (электроприборы) нужно разделить на их товар и модели.

Сделал по таблице на каждый товар. (где хранится информация о моделях)

Таким образом для ранее созданных таблиц, ещё по одной таблице на каждую модель(где хранится информация о характеристиках) . Это правильно?

Например.

1 Таблица (товар) - Проводка
2 Таблица (товар) - Инструмент (в каждой строке информация о модели)
2.1 Таблица (модель) - Перфоратор (в каждой строке характеристика модели)
2.2 Таблица (модель) - Штроборез
...
...

_____________
Принимаю заказы, писать в ЛС
YVSIK
Цитата (Медведь @ 10.06.2014 - 17:02)
Это правильно?

Например.

1 Таблица (товар) - Проводка
2 Таблица (товар) - Инструмент (в каждой строке информация о модели)
2.1 Таблица (модель) - Перфоратор (в каждой строке характеристика модели)
2.2 Таблица (модель) - Штроборез
...

теперь осталось для каждого товара разработать поля по характеристикам
например товар Инструмент:
пилы, лобзики, перфораторы . и тд. и каждому товару их общие характеристики, можно добавить одно поле дополнительно, скажем то что случается у инструмента только одного, лейблы или метки, или даже статус
вообщем работать придется попотеть пока все таблицы построишь как надо

берем в зубы таблицу ЕКСЕЛь размечаем квадратики и пошло поехало))

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Миша
А как вообще лучше 100 таблиц по 90 колонок

Или 300 таблиц по 30 колонок.?

(в каждом поле - одно предложение)

_____________
Принимаю заказы, писать в ЛС
sergeiss
Цитата (Медведь @ 11.06.2014 - 21:20)
А как вообще лучше 100 таблиц по 90 колонок

Или 300 таблиц по 30 колонок.?

Лучше 2-3 таблицы, правильно спроектированных. Увеличивая (без необходимости) количество таблиц, ты сам себе делаешь очень плохие грабли.

Почитай уж наконец про "нормализацию БД", что ли... В гугле найдешь ссылки по этим словам.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
А например в больших компаниях вроде vk, avito или одноклассники. Сколько таблиц, примерно может быть?

_____________
Принимаю заказы, писать в ЛС
sergeiss
Если даже кто-то назовет тебе точное количество этих таблиц - тебе это как поможет? Нет, не поможет. Потому что важно не количество, а качество, в т.ч. правильность архитектуры БД. Это подразумевает, в т.ч., и "нормализацию БД".
Ты про неё почитал, кстати? Понимаешь, что означают эти слова?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
Цитата (sergeiss @ 11.06.2014 - 22:11)
Если даже кто-то назовет тебе точное количество этих таблиц - тебе это как поможет? Нет, не поможет. Потому что важно не количество, а качество, в т.ч. правильность архитектуры БД. Это подразумевает, в т.ч., и "нормализацию БД".
Ты про неё почитал, кстати? Понимаешь, что означают эти слова?

Прочитал конечно и не раз, поэтому спрашиваю, советуют всё в одну таблицу не пихать. Ну вот например на одном сайте пример авто объявлениями.

1 таблиц - хранит Регионы России (области, края, республики)

2 таблиц - для каждого региона, хранит населённые пункты (сколько регионов, столько таблиц, интернет говорит 83 региона=83 таблицы)

3 таблиц - для каждого города создаётся таблица (город марка автомобиля), допустим таких марок 30, т.е. для каждого города ещё 30таблиц.

Считаем

1 таблица - 1 шт.
2 таблица - 83 шт.
3 таблица - 33000шт (1100 городов * 30 марок авто)

_________________________________________________________

После этого примера я и задаю такой вопрос (простые примеры брать не стал для наглядности моего вопроса), с примером выше в 33084 таблицы, это номально?

_____________
Принимаю заказы, писать в ЛС
rooor
Цитата
с примером выше в 33084 таблицы, это номально?

ты путаешь таблицы и строки в этих таблицах))
третья таблица она одна, и в ней 33000 строки
Valick
Цитата
с примером выше в 33084 таблицы, это номально?

нет это не нормально

_____________
Стимулятор ~yoomoney - 41001303250491
Миша
Цитата (rooor @ 12.06.2014 - 09:25)
Цитата
с примером выше в 33084 таблицы, это номально?

ты путаешь таблицы и строки в этих таблицах))
третья таблица она одна, и в ней 33000 строки

Нет на том сайте было написано именно так, как написал выше.

Автор это объясняет тем, что в каждой из 33000 таблиц будет много объявлений и если запихать в одну таблицу получится каша из

Таблица.

1поле / 2 поле / 3поле /...

id / id региона / id города / марка / объявление /.... тут разное
id / id региона / id города / марка / объявление /.... тут разное
id / id региона / id города / марка / объявление /.... тут разное

т.е. посути как объяснил автор (дословно не помню) в каждой строке могут повторяться значения (id региона / id города / марка) чего допустить нельзя и с каждым новым объявлением строк будет больше чем 33000.

И кто прав Автор этого примера или rooor?

P.S. Я думаю лучше раз понять что к чему, чем везде наделать ошибок и потом переделывать.

_____________
Принимаю заказы, писать в ЛС
T1grOK
Цитата (Медведь @ 12.06.2014 - 06:47)
т.е. посути как объяснил автор (дословно не помню) в каждой строке могут повторяться значения (id региона / id города / марка) чего допустить нельзя

Что в одном регионе, одного города не может быть несколько марок автомобилей? biggrin.gif
Если пойти по канонам нормализации, то как минимум нужно id региона и города вынести в отдельную таблицу и полученный третий id использовать где необходимо для однозначной идентификации.
Но не буду идеализировать нормализацию, лучше балансировать между нормализацией и денормализацией.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
sergeiss
Цитата (Медведь @ 12.06.2014 - 10:47)
Нет на том сайте было написано именно так, как написал выше.

Не знаю, кто и что там написал, но тебе уже правильно сказали: ты путаешь таблицы и строки в таблицах.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
Цитата (sergeiss @ 12.06.2014 - 14:44)
Цитата (Медведь @ 12.06.2014 - 10:47)
Нет на том сайте было написано именно так, как написал выше.

Не знаю, кто и что там написал, но тебе уже правильно сказали: ты путаешь таблицы и строки в таблицах.

Значит из примера выше.

1 таблица - хранит Регионы России (области, края, республики)

Например id | Регион

2 таблица - хранит населённые пункты

Например id | id Региона | Город

3 таблица - хранит Марки

Например id | id населённого пункта | Марка

4 таблица - для хранения всех объявлений сайта

Например id | id Марки | Объявлениние | Модель | год выпуска| и т.п. |

Так правильно будет?


_____________
Принимаю заказы, писать в ЛС
rooor
1 - регионы(ид, название)
2 - нас.пункты(ид, название)
3 - марки(ид, название и т.п.)
4 - сводная(ид, ид региона, ид нас.пункта, ид марки и т.п.)

загугли третью нормальную форму
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.