![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 1 Всего: 20 |
Если у меня в таблице users, где хранятся данные юзеров аж 25 полей информации.
Таблица – как вы сами понимаете очень востребована, и обращаться к ней будут часто. Да и разрастись она должна быстро. Как это может угрожать производительности скрипта? Для обращения я использую PDO. |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: нет Всего: 40 |
25 это небольшое количество полей. Такое количество полей практически никак не влияет на скорострельность
-------------------- Бонифаций. |
|||
|
||||
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 7 Всего: 54 |
Рыжий, главное грамотно подбери типы данных и все будет хорошо.
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 1 Всего: 20 |
Хорошо, постараюсь.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
Рыжий, искренне надеюсь, что со временем не окажется, что в половину из этих полей придется пихать данные массивами, а вторая половина может быть NULL
Естественно, всё зависит от того, что хранится в тех 25 полях и как ты эти данные собираешься обрабатывать |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
вообще-то меня это тоже волнует... У меня сейчас есть таблица в которой порядка 40 полей, в половине из них небольшие массивы.
Как по другому сделать не представляю. Эти поля - описание объекта. Единственный вариант - разделить таблицы, но тогда придётся делать сложные запросы по 3-м - 4-м таблицам. Есть ли где в мануале какие либо ограничения по этому вопросу? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 2 Всего: 38 |
Gold Dragon,
Лучше нормализовать. Будет меньше и универсальнее. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
Gold Dragon, ты бы задачей поделился...
а так, в общем виде, нормализация с последующими inner join'ами по ключам мне видится более быстрым делом, нежели работа с не-атомарными полями средствами СУБД.. да и 3-4 join'a - это, в принципе, не предел. насколько я помню, ограничения в СУБД при конфигурировании накладываются на количество строк, выбираемых join'ами на промежуточных этапах отбора, а не на уровень вложенности... |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Вот смотрите... есть объект - id - назвние - адрес ..... - что-то ещё такое а потом - стены Array( - материал, - цвет, - высота, - ширина -.....) - проводка Array( - материал, - сечение, - длина, - оплётка - ......) - режим работы Array( - понедельник Array( - начало - конец - перерыв - выходной - ....) - вторник Array(.....) и так далее я сначала делал все характеристики в разных таблицах, но с запросами целая беда. А теперь всё в одной таблице. Одна выборка и все данные "в кармане". Проблем с торможением, зависанием и т.п. не заметил, вот и оставил одну таблицу. Просто кроме этой таблицы есть ещё целая куча. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Dremlin |
|
|||
|
Quo vadis? ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 21.9.2006 Где: Киев Репутация: 2 Всего: 4 |
Gold Dragon, а если, например, у объекта внешние стены из бетона, а внутренние из ценных пород древесины, проводка разных типов и режим работы зависит от четности недели и т.д. Как будешь хранить такую инфу?
да никаких там бед не должно быть: пара джойнов, пара условий, группировочка - готово. ЗЫ. SQL без JOIN, как пиво без газа --------------------
Каждый дурак знает, что до звезд не достать, а умные, не обращая внимания на дураков, пытаются... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
лучше так: как безалкогольное пиво, как надувная женщина, как искусственная елка... эти данные характеризуют класс(или "марку" - не помню, как определяется) провода. потому могут быть определены одним символьным кодом. а символьный код вариативной длины в качестве ключа - коряво. потому надо хранить в отдельной таблица, а здесь - только ссылку на код провода. это к т.е., судя по всему, надо нормализовать. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
ну народ... я утрировано сказал...
В своей массе отдельные характеристики не повторяются, по этому использовать ключи из другой таблицы не целесообразно. что касается
Если мне рассовывать всё по разным таблицам, то таблиц будет порядка 25-30. И ещё плюс других штук 15... Нафига такая база... запутаешься -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
у меня в последнем проекте было 122 таблицы. и я не хвастаюсь.просто констатирую факт. и не запутался. дело не в количестве. дело, в первую очередь, в систематизированном подходе к наименованию. если у тебя одно и то же поле называется по-разному(например, главный ключ в одной таблице - просто id, а внешний ключ в другой таблице - уже "idsomething"), то работать сложно. если у тебя куча таблиц относятся к одному и тому же - лучше дать им одинаковые префиксы... У меня вот такой подход: 1. одинаковые поля называются одинаково в разных таблицах(idtopic у меня и в таблице topics, и в таблице topics_names и в таблице topics_regions означает одно и то же, хранит в одинаковом виде, и называется одинаково - не запутаешься) 2. "групповые" таблицы(имеющие отношение не ко всему проекту, а к отдельной части) имеют одинаковый префикс("sort_heads", "sort_heads_names", "sort_titles", "sort_functions") - набирать дольше(если нет автозавершения в оболочке-администраторе 3. таблицы, реализующие отношения "многие-ко-многим" называются так, чтоб включать в себя название обоих типов объектов("rows_names","rows_regions","rows_directions") - пожалуй, тут всё же нужен элемент привыкания, потому как связь между странами и полосами может называться как "rows_regions", так и "regions_rows", но если на первое место вставлять более "специфический" объект(не могу понятней объяснить не обязательно - при такой; при любой системе наименований руки будут набирать названия полей и таблиц практически самостоятельно, да и читать запросы будет намного проще |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
да это всё понятно.. просто именно в этом проекте для меня так делать удобнее.
Да и вопрос малость другой... Выдержит ли MySQL? Если я правильно понял, специально этим вопросом никто не занимался и глюков замечено не было. Но, если честно, хотелось бы узнать предел.. в доках ничего не нашёл (может просто плохо читал -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| SamDark |
|
|||
|
Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 2 Всего: 38 |
Gold Dragon,
Так попробуй. Берём ab и вперёд. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |