Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: по базе данных [2]
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » по базе данных

Страниц (3): « 1 [2] 3 »
 

16. Champion - 07 Февраля, 2009 - 16:51:29 - перейти к сообщению
Тем, что проверять надо, успешно прошла вставка или нет.
17. LONGMAN - 18 Февраля, 2009 - 10:41:53 - перейти к сообщению
Как лучше спроектировать таблицу для хранения настроек? Сделать столько поле сколько настроек или две поле имя настройки - значение? И какие флаги лучше поставить
18. valenok - 18 Февраля, 2009 - 15:36:06 - перейти к сообщению
LONGMAN я делаю два поля параметр-значение, а флаги поставьте красный и синий
19. LONGMAN - 18 Февраля, 2009 - 20:46:18 - перейти к сообщению
valenok, не люблю я красных флагов, коммунизма напоминает Улыбка Я говорил на счёт типов и индексов
CODE (text):
скопировать код в буфер обмена
  1. CREATE TABLE `setting` (
  2.   `name` char(50) NOT NULL default '',
  3.   `value` char(50) NOT NULL default '',
  4.   PRIMARY KEY  (`name`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=1;
Эта таблица оптимально спроектирована?
20. valenok - 18 Февраля, 2009 - 22:50:22 - перейти к сообщению
да как мы можем сказать если понятия не имеем какие настройки там хранить собираетесь ?
В конце концов можете просто пришпилить каждой настройке по номеру и сделать таблицу
Номер_настройки \ значение
1 \ #FFFFFFF
2 \ 0
3 \ 1663,51 руб.
4 \ Здравствуйте уважаемый посетитель.

А в скрипте просто обращаться к полю с настройкой номер 1 как к цвету фона главной страницы.
Это вам решать, в зависимости от того, какие настройки и как вы их собираетесь там хранить
21. LONGMAN - 19 Февраля, 2009 - 00:11:43 - перейти к сообщению
Ладно, поставлю вопрос иначе. Я хочу хранить в параметрах тексты и цифры не более 20 символов. Параметров будет больше 30. Запрос на эту таблицу будет в каждом сценарий. Как вы спроэктировали бы такую таблицу? Чтобы он работал быстро
22. valenok - 19 Февраля, 2009 - 08:25:45 - перейти к сообщению
можешь всё таки сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. +---------------+---------------+---------------+-----
  3. |  Parametr1    |   Parametr2   |    Parametr3  |  Par..
  4. +---------------+---------------+---------------+-----
  5. |  value1       |    Value2     |  Value3       |  Val..
  6. +---------------+---------------+---------------+-----


Cъэкономишь цикл на обработке всех строк и сможешь получить все настройки в один массив с
mysql_fetch_assoc и подобрать каждому полю подходящий тип данных.
23. LONGMAN - 19 Февраля, 2009 - 13:17:35 - перейти к сообщению
Поле parameter сделать Primary Key не убыстрит выборку?
24. LONGMAN - 19 Февраля, 2009 - 16:21:06 - перейти к сообщению
Опс, не доехал сначала Улыбка Значит сделать столько поле сколько настроек? А в таблице нужно сделать поле на пример
CODE (text):
скопировать код в буфер обмена
  1. id tinyint(1) UNSIGNED NOT NULL default '1' (PRIMARY KEY)
чтобы потом выбрать так
CODE (text):
скопировать код в буфер обмена
  1. SELECT * FROM table WHERE id=1 LIMIT 1
Так не будет быстрее? Или без поле id
25. valenok - 19 Февраля, 2009 - 18:01:30 - перейти к сообщению
LONGMAN зачем тебе индекс если тебе выбирать то и неизчего ?
Там всего одна строка. Лишний индекс и лишнее поле просто.
26. LONGMAN - 19 Февраля, 2009 - 18:22:17 - перейти к сообщению
valenok, спасибо большое. Есть ещё несколько вопросов по оптимизацию базы данных и запросов..
1. С каком полям работает MySQL (MyISAM) быстрее, char, varchar или text? И максимум сколько символов можно вставить в поле char?
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?
27. Roler - 19 Февраля, 2009 - 19:34:50 - перейти к сообщению
Цитата:
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?

Разумеется.
28. valenok - 19 Февраля, 2009 - 19:37:17 - перейти к сообщению
LONGMAN с char потому что самое которкое.
о типах: http://dev[dot]mysql[dot]com/doc/refman/5[dot]0/en/char[dot]html

2. можно поискать, но так как программисты работащие над mysql не глупые, смею полагать что дальнейшего поиска по таблице не будет и большой разницы в скорости не увидишь.

Дело в том, что 1000 записей это не такое большое количество записей чтоб вообще увидеть разницу
даже если она существует. Проведи эксперимент на таблице с 1 000 000 записей.
29. LONGMAN - 20 Февраля, 2009 - 07:47:49 - перейти к сообщению
Провёл эксперимент на таблице с 1000000 записью и особого отличия всёравно не увидел. Если знаете из php можно увидеть результаты комманды EXPLAIN и PROCEDURE ANALYZE()?
30. Champion - 20 Февраля, 2009 - 08:38:12 - перейти к сообщению
Roler пишет:
Цитата:
2. В таблице где более 1000 записи и есть поле id (auto_increment, primary key), убыстрит ли выборку добавление LIMIT 1 после запроса SELECT (UPDATE) from table WHERE id=500?

Разумеется.
Вот и нет. Если поле уникальное, то LIMIT ни на что не повлияет.

 

Powered by ExBB FM 1.0 RC1