Теоретический вопрос !

Kryakozyablik

Новичок
Теоретический вопрос !

Здравствуйте !
Никогда не писал крупномасштабных проэктов и как говориться время пришло. В связи с этим возникло несколько вопросов про MySQL.

1. Кол-во столбцов в таблице - на сколько оправдано или наоборот большое кол-во столбцов. Ну где-то 40-50 ? И чем это грозит ?

2. Кол-во самих таблиц - 400 и более таблиц это нормально ? Допустим имеет смысл для каждого нового юзера создовать собственную таблицу с его личными данными ? ИЛи лучше все хранить в одной таблице.

Интересует скорость и надежность скриптов.
 

Romantik

TeaM PHPClub
Допустим имеет смысл для каждого нового юзера создовать собственную таблицу с его личными данными ?
Никогда не писал крупномасштабных проэктов и как говориться время пришло.
рановато ИМХО. почитай сначала о планировании баз данных литературу и сразу кол-во таблиц и полей сократится на порядок
 

Kryakozyablik

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

Romantik

TeaM PHPClub
Kryakozyablik
ну такого правила нет меньше таблиц или больше столбцов. Есть правила нормализации они одни. Хорошо спроектированная база это много значит. А от количества таблиц и полей самой MySQL фиолетово.
 

Kryakozyablik

Новичок
Спосибо. Вот именно это я хотел услышать :)
Т.е. извращенность базы будет зависить только от моих рук и моих скриптов. И адаптировать базу надо именно под них. А самой SQL будет уже паралельно что в результате получиться. Все запросы будут обрабатываться с одинаковой эффективностью не зависимо от структуры самой базы. Я правельно зделал вывод ?
 

Фанат

oncle terrible
Команда форума
Книги книгами, но иногда в них такой бред пишут.
я считаю, что этот товарищ безнадёжен.
во-первых, уж кто бы говорил, а ему-то про бред в книгах молчать надо
во-вторых, с чего он вдруг взял, что на форуме бред ему не напишут.

очередной студент-недоучка провалит очередной проект.
радовать в такой ситуации может только два фактора.
1. самая большая радость. что он не врач и не архитектор.
2. за переделку можно будет взять хорошие деньги. А что переделывать за ним придётся - это 100%
 

Kryakozyablik

Новичок
У товарищь фанат... не все же хотят выглядеть кандитатами наук. Вы не правы вернее почти не правы :)

Дейстивительно я не врач. И действительно на форумах и бред бывает :)

О книгах я говорю по следам Delphi. Вы уж мне поверьте (а хотя мне фиолетово) В книгах по делфи далеко не все авторы адекватно описывают решения тех или иных задачь. Проэктов я никаких не заваливал. Я за свою жизнь выполнил проэктов 6 в разных областях (на PHP пока только один) И если бы я что-то заволил... да я бы от стыда сгорел. То что я щас творю - естественно делаю для себя-любимого и в целях тренеровки. А мнение общества мне важно т.к. не надо изобретать велосипед.
 

Alexandre

PHPПенсионер
Ну где-то 40-50 ? И чем это грозит ?
чем больше кол-во столбцов, тем больше требуется места для хранения строки таблицы БД. Соответственно, чем больше строка места в памяти занимает строка, тем больше места необходимо для ее анализа в памяти, т.е. для больших таблиц, мускуль будет съедать много памяти.

Один мой предшественник так спроектировал БД, что у него таблица занимала 900 полей, соответсвенно весь проект падал, при более менее средней нагрузки на сайт. Так что - делайте выводы из чужих ошибок, хотя многие любят наступать на собственные грабли.

-~{}~ 20.10.06 11:14:

2. Кол-во самих таблиц - 400 и более таблиц это нормально ?
в принципе нормально, хотя на сколько мне не изменяет память, мускуль кажется может хорошо переключаться между базами, и использовать в одном запросе таблицы из другой БД (точно уже не помню...) В принципе - 400 таблиц, это нормально, но с таким большим кол-вом таблиц не удобно работать. По этому, лучше спроектировать так, чтоб таблицы были разнесены по разным БД
Допустим имеет смысл для каждого нового юзера создовать собственную таблицу с его личными данными ? ИЛи лучше все хранить в одной таблице
естественно второе, умрешь в кол-ве таблиц. На сколько мне известно, при нормально спроектированной БД 1 000 000 записей мускуль держит нормально.

Надо помнить, что от правильно спроектированной БД, зависит успех проекта
 

HraKK

Мудак
Команда форума
Kryakozyablik
Мне кажеться чем писать этот бред. И слушать Alexandre
который ничего Вам на вашем уровне развития не поможет, Вам стоило задать 1 единственный вопрос, а иммено:
Какие книги стоит прочитать что б спроектировать базу данных для крупномаштабных проектов

А на понимаение этих книг уйдет не менее 3 месяцев.
Так что лучше скажите шефу честно - "Я пока не готов взяться за такой проект и будет лучше если вы доверитесь професионналам. Или подождете пока я дорасту до этого уровня."
 

Kryakozyablik

Новичок
Ну прям уговорили :) Лано - вопрос моно считать закрытым. Если кто-то хочет посоветаовать литературку, то не откажусь.
 

MadMike

Новичок
Kryakozyablik
Книг по _качественному_ построению действительно больших проектов я еще не видел. Все книги с названиями '.*php.*mysql.*perfomance tuning.*', которые я видел, говорят примерно одно и то же, причем пользы от этого особой нет. Хотя, возможно, у нас разные критерии "крупности" проекта.
Тут есть только 2 варианта:
1. Учиться самому, наступать на все возможные грабли и тестить, проверять, думать.
2. Просить консультации у людей, "которые умеют". Таких людей совсем не много, и они не всегда горят желанием делиться опытом - именно за этот уникальный опыт им платят приличные деньги. Кстати, имхо, именно поэтому и книг хороших нет :) Единственная сложность в этом - научиться отличать действительно спецов от таких, например, как Alexandre. Такие вас плохому научат.

PS. Правила нормализации напрямую не имеют ни малейшего отношения к производительности приложения.
 
Сверху