За последние 24 часа нас посетили 17209 программистов и 1693 робота. Сейчас ищут 1052 программиста ...

PHP + MySQL проектирование базы данных, PHP + MySQL проектир

Тема в разделе "PHP и базы данных", создана пользователем Ksaniol, 13 окт 2010.

  1. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    Надесюсь кто-то сможет предлождить оптимальный вариант решения моей задачи.

    Делаю скрипт обменника электронных валют. Есть таблица юзеров с различными полями. Есть 3 вида электронных валют, для них созданы отдельные 6 столбцов в таблице юзеров. 3 столбца это номера кошельков соответствующих электронных валют, еще 3 столбца это баланс по каждой валюте.

    Смысл такой, что есть необходимость добавления/удаления различных видов валют. Та структура и система, которая есть сейчас естественно не подходит.

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

    Надеюсь суть проблемы ясна и кто-то сталкивался с подобным.
     
  2. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    +таблица валют с необходимыми параметрами.
    +кошельков с id юзеров и валюты
    в таблице юзеров добавляешь id кошельков.
    Как то так.
     
  3. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    а как всё это одним запросом вытащить?

    предположим таблицы

    1. users
    id; user_name

    2. currency
    id; cerrency_name; param1; param2; param3

    3. money
    id; user_id; currency_id; balance


    Либо может кто-то предложит более рациональный вариант?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    курс валют еще в отдельной табличке: первая валюта, вторая, и сколько второй в единице первой. =)
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ksaniol
    это наиболее рациональный. не умеешь вытащить одним запросом - попроси, чтобы научили. Что именно тебе надо вытащить?
     
  6. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    mysql: SELECT * FROM a.users, b.currency_name, c.money WHERE (a.id = c.user_id AND c.currency_id = b.id)
    Запрос наверняка кривой, но смысл такой.
     
  7. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    да, нужен не курс а какая-то таблица обмена, т.к. при такой структуре для 10 валют заполнять все поля проблематично

    да... это получается еще один вопрос
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ksaniol
    расслабься, чувак. ты как-то излишне сосредоточен.
     
  9. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    Видимо с этим проще не получится (

    А как тогда организовать обмен? точнее процент обмена между валютами (нужно учесть, что их можно будет добавлять/удалять)
     
  10. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Привяжи курс каждой валюты к какой то одной. И втаблице указывает курс относительно неё.
     
  11. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    валюты меняются с определенной комиссией, может быть 5%, 10% или вообще закрытая позиция для обмена между определенными валютами
     
  12. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Ну и в чём проблема то, не могу понять?
     
  13. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    как грамотно сделать таблицу (изменить существующую или добавить новую) чтобы можно было в последствии без проблем настривать обмен и удалять/добавлять валюты?
     
  14. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Решения выше не помогают?
     
  15. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    привязка к одной валюте это не выход
     
  16. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Почему? На основе этого будут считаться курсы относительно друг друга.
     
  17. Ksaniol

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

    С нами с:
    13 окт 2010
    Сообщения:
    15
    Симпатии:
    0
    Ставки для обмена будут выставляться в процентах, 5%, 6,5% и т.п. Теоретически, если будет 10 различных валют - будет 90 направлений обмена.
    Может быть я не совсем вас понимаю, можете пример описать с числами?
     
  18. WildZero

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

    С нами с:
    24 фев 2010
    Сообщения:
    242
    Симпатии:
    0
    Адрес:
    Пермь
    Не знаю правильно или нет. я бы сделал ещё одну таблицу вида
    |id|currency1|currency2|percent|
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ksaniol
    тебе надо в голове своей разделить то что видит пользователь, и то что за этим стоит внутри всего этого дела. Проценты надо высчитывать. А хранить тебе предложили ввести одну выдуманную валюту и прописать у валют коэфициэнты пересчета в нее.

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

    Проще некуда =)

    Считать желательно хорошо и точно =)