Форум → Программирование → PHP для идиотов → Помогите со структурой БД
Помогите со структурой БД
Страницы: ← Следующая страница →
-
Совсем голова не соображает. Никак не могу придумать как сделать следующее:
есть основная таблица с прайсом (где-то 50 наименований) и есть таблица пользователей, которые имеют возможность этот самый прайс просматривать. Но каждому пользователю можно назначий использовать индивидуальный прайс со своими ценами.
Так вот проблема в том, что не знаю как это лучше сделать. Очень уж не хочется создавать каждому пользователю свою таблицу с прайсом. Да и если появится какой-то новый лот в основном прайсе, его придется вручную лезть вбивать еще и тому пользователю.
Подскажите как лучше сделать.
PS. Вроде нормально написал суть проблемы :)from TRIAL with LOVE -
7 декабря 2007 г. 11:28, спустя 20 минут 27 секунд
а почему не сделать таблицу связки?
price_id | user_id | value (binary(1))
выбирать позицию прайса, если есть связка в этой таблице, где value=1
я обычно так делаювсе умрут, а я изумруд -
7 декабря 2007 г. 12:15, спустя 46 минут 51 секунду
Что-то не совсем догнал что ты имеешь ввиду.
На пальцах объясни плиз )))
Вот моя структура:
id, model, price1, price2, price3
Как это дело преспособить под то, как ты гвооришь?from TRIAL with LOVE -
7 декабря 2007 г. 12:34, спустя 19 минут 32 секунды
Прайс:
id, model, price1, price2, price3
Юзеры:
id, name…
Связка:
id, user_id, price_id, value(ставится 0 если юзеру запрещено, 1 — разрешено смотреть пункт прайса с id=price_id)
выбираем доступные прайсыSELECT P.*
FROM `prices` AS P
JOIN `relatives` AS R
ON R.`price_id`=P.`id`
WHERE R.`user_id`={$user_id} AND `value`=1все умрут, а я изумруд -
7 декабря 2007 г. 12:50, спустя 16 минут 2 секунды
Боюсь ты немножко не так меня понял.
Пользователю доступен либо общий прайс, либо его личный, который 1 в 1 как общий но с другими ценами. Т.е. 1 юзер = 1 прайс.
Но создавать эти прайсы с раными ценами для каждого очень не хочется. Это я в таблицах погрязну да и если надо что-то добавить новое это же надо все таблицы будет изменять, а это ппц полный.from TRIAL with LOVE -
-
-
7 декабря 2007 г. 13:26, спустя 18 минут 57 секунд
хранятся цены, оптовая, розничная, рекомендованная, ну не важно, вобщем цены там, и вот эти самые цены могут быть для каждого юзера своимиfrom TRIAL with LOVE -
7 декабря 2007 г. 13:36, спустя 10 минут 32 секунды
В таком случае, храни эти цены в таблице связок
Модели:
id, model
Юзеры:
id, name
Связка:
model_id, user_id, price1, price2, price3
Составной уникальный индекс (model_id, user_id) -
7 декабря 2007 г. 13:48, спустя 11 минут 45 секунд
Пожалуй так и буду делать. Если общий прайс то ничего не заносим, усли уникальный, то буду все наименования заносить.
Эх, грамоздкая конечно получится табличка но куда деваться. Правда делать всё это будет геморно я чувствую )))from TRIAL with LOVE -
7 декабря 2007 г. 13:53, спустя 5 минут 1 секунду
Если общий - то и заноси общие цены т.к. общий прайс это все равно наиболее распространенный частный случай.
Если общий прайс то ничего не заносим, усли уникальный
Совершенно стандартная схема для реляционной БД, не вижу ничего гиморного и громозкого.
Эх, грамоздкая конечно получится табличка но куда деваться. Правда делать всё это будет геморно я чувствую ))) -
7 декабря 2007 г. 14:21, спустя 28 минут
Я просто щас это так сделаю, что ничего стандартного уже не будет )))
Да и зачем заносить общий случай, смысл засорять базу одними и теми же записями. Основной в одной таблице, дополнительные в другой.
Вобщем уже придумал как сделать )))from TRIAL with LOVE -
7 декабря 2007 г. 14:27, спустя 5 минут 36 секунд
Да и зачем заносить общий случай, смысл засорять базу одними и теми же записями.
Где ты увидел в предложенной схеме хоть одну пару одинаковых записей?
Хозяин-барин. :)
Основной в одной таблице, дополнительные в другой. -
7 декабря 2007 г. 14:29, спустя 2 минуты 10 секунд
У меня просто к решению любых проблем нестандартный индивидуальный подход :)
Хотя мне кажется в данном случае мой вариант более экономичный :)from TRIAL with LOVE -
7 декабря 2007 г. 14:46, спустя 17 минут 5 секунд
Ага. Особенно сэкономит силы и время, когда нужно будет печатать прайсы, сравнивать цены, сортировать по ценам и.т.д .и.т.п. :)
Хотя мне кажется в данном случае мой вариант более экономичный :)
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!