За последние 24 часа нас посетили 16079 программистов и 1666 роботов. Сейчас ищут 1068 программистов ...

Хранение данных в MySql

Тема в разделе "MySQL", создана пользователем Talany, 30 ноя 2012.

  1. Talany

    Talany Активный пользователь

    С нами с:
    20 апр 2012
    Сообщения:
    15
    Симпатии:
    0
    Доброго времени суток.
    Так как MySql по большому счету не знаю, решил спросить у вас дельного совета.
    Допустим имею данные : hhd1=80, hhd2=120, hdd3=80 и т.д (точное количество неизвестно, хоть 100)
    Как лутше хранить такие данные? Создавать для каждого hdd свою колонку (штук 100)????
    надеюсь на понимание.....
    Заранее благодарю!
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    это целиком и полностью зависит от того, что потом с этими данными необходимо будет делать...
     
  3. Talany

    Talany Активный пользователь

    С нами с:
    20 апр 2012
    Сообщения:
    15
    Симпатии:
    0
    Ну наверно как всегда (извлекать, изменять, удалять)
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    это понятно....иначе зачем они в БД вообще нужны )

    как извлекать то надо?

    hhd1=80, hhd2=120, hdd3=80

    каждую отдельно, все вместе строкой, как?

    может поиск по ним еще будет?
     
  5. Talany

    Talany Активный пользователь

    С нами с:
    20 апр 2012
    Сообщения:
    15
    Симпатии:
    0
    Нет поиска по ним не будет.
    Планирую извлекать в многомерный массив. К примеру Hdd[1][0] = 80
    Подумываю может держать все в text и метить разделителями....
    Вообще так делают? или это бред?
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    бред

    в массив значит каждый элемент в отдельной ячейку БД
     
  7. Talany

    Talany Активный пользователь

    С нами с:
    20 апр 2012
    Сообщения:
    15
    Симпатии:
    0
    Ну их плодить надо.......
    Я же точно не знаю точно сколько их может быть.....
    и скорее всего половина из них пустовать будет мертвым грузом....

    Ну отрицательный результат тоже результат.....
    Значит буду хранить строкой.... и потом делить ее
    Благодарю "Dmitriy A. Arteshuk"
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Обычно в таких случаях создают отдельную таблицу. Пример - есть компьютер, у него есть комплектующие - пусть эти твои hdd1, 2 и 3 - жёсткие диски, воткнутые в какой-то комп. Ты не знаешь заранее, сколько их будет, но хочешь иметь возможность описать их все. Тогда у тебя будет две таблицы. Одна - с описанием самого компа - допустим, там будет его id, название, место, где он установлен:
    Код (Text):
    1. mysql> SELECT * FROM `computers`;
    2. +----+-------------+-----------------------+
    3. | id | name        | location              |
    4. +----+-------------+-----------------------+
    5. |  1 | Старый комп | В спальне у родителей |
    6. |  2 | Мой комп    | У меня в кабинете     |
    7. +----+-------------+-----------------------+
    8. 2 rows in set
    А во второй таблице будет описание тех элементов, которых может быть неопределённое количество для каждого компа. Допустим, у старого компа 2 жётских диска, а у нового - 3. Тогда вторая таблица будет такой:
    Код (Text):
    1. mysql> SELECT * FROM `components`;
    2. +----+-------------+----------------+----------------+
    3. | id | computer_id | component_type | component_desc |
    4. +----+-------------+----------------+----------------+
    5. |  1 |           1 | hdd            | 40             |
    6. |  2 |           1 | hdd            | 60             |
    7. |  3 |           2 | hdd            | 80             |
    8. |  4 |           2 | hdd            | 120            |
    9. |  5 |           2 | hdd            | 80             |
    10. +----+-------------+----------------+----------------+
    11. 5 rows in set
    Соответственно, определить к какому компу относятся те или иные компоненты - мы можем по полю computer_id, в котором у нас записан id того или иного компьютера.
     
  9. Talany

    Talany Активный пользователь

    С нами с:
    20 апр 2012
    Сообщения:
    15
    Симпатии:
    0
    А это выход!!!!...... Мне можно кричать ЭВРИКА ))) (для меня это открытие)....
    Благодарю "sobachnik"......