|
|
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Наконец добрался до форума. Таблица, содержащая сведения о каждом мероприятии (кто, где, когда и почём). Мероприятия разовые (всякие юмористы, артисты, певцы и пр.) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Каждой записи таблицы events соответствует своя пара таблиц places и prices_table. Корректнее говорить о таблицах с именами формата placesXYZ и prices_tableXYZ, где XYZ – это идентификатор соответствующей записи таблицы events. Отсюда и идёт проблема передачи имени таблицы в качестве переменной в параметр запроса. Таблица купленных или не купленных мест соответствующего зрительного зала на конкретное мероприятие из events. Данная таблица строится в соответствии с файлом структуры зрительного зала halls.file. По id определяется ряд и место, исходя из структуры в halls.file. Каждой строке соответствует место в зрительном зале. Сделано так для того, чтобы использовать возможность построчной блокировке при транзакции (InnoDB). Код: sql 1. 2. 3. 4. 5. 6. 7. Таблица цен на места зрительного зала конкретного мероприятия. Разные места в зале имеют разную цену. Для визуализации этого различия добавлен цвет. Цвет трехкомпонентен для удобства его инвертации. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Постоянная таблица. Сюда загоняются имеющиеся зрительные залы. Структура каждого зала содержится в файле с именем file. Все залы разумеется разные. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В целом пожалуй всё. Если что-то не хватает, по ходу проясним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 19:45:07 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, ничего нового ты тут не написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 19:58:22 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Вот скажи пожалуйста, вот таблица Код: sql 1. 2. 3. 4. 5. 6. 7. по сути всё просто -- id, занято или нет, и цена. А вот представь такую задачу -- нужно выдать на заданное событие все свободные места для выбора пользователя. Ты ЧТО пользователю будешь показывать, чтобы он что-то выбрал ? ID ? Вот и получается, что проблема даже не в "Как имя таблицы в запросе выразить переменной", а в том, что у тебя вообще нет БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:23:36 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
У всех полей таблиц названия говорящие. Чего ещё здесь не хватает для того, чтобы понять как избежать такого неловкого применения PREPARE STATEMENT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:24:15 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokПо id определяется ряд и место, исходя из структуры в halls.file. Вся структура зрительного зала с расположением мест отображается на странице браузера (вид зала сверху). Кассир продающий места видит занятые, не занятые места, за 1000руб, за 3коп. ... fedushokДля визуализации этого различия добавлен цвет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:30:36 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokfedushokПо id определяется ряд и место, исходя из структуры в halls.file. Вся структура зрительного зала с расположением мест отображается на странице браузера (вид зала сверху). Кассир продающий места видит занятые, не занятые места, за 1000руб, за 3коп. ... fedushokДля визуализации этого различия добавлен цвет. Обычно когда ты смотришь на билет, там написано: "Партер, левая сторона, 5-ый ряд, место 23". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:32:26 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Так и сделано. Когда кассир выбирает место он видит № ряда, № места и цену. Работа с id скрыта от кассира. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:40:30 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
прочитай что написал MasterZivMasterZivВот скажи пожалуйста, вот таблица Код: sql 1. 2. 3. 4. 5. 6. 7. по сути всё просто -- id, занято или нет, и цена. А вот представь такую задачу -- нужно выдать на заданное событие все свободные места для выбора пользователя. Ты ЧТО пользователю будешь показывать, чтобы он что-то выбрал ? ID ? Вот и получается, что проблема даже не в "Как имя таблицы в запросе выразить переменной", а в том, что у тебя вообще нет БД. Вакант можно убрать, сам факт наличия записи в этой таблице будет признаком занятости Иначе тебе придется для каждого события "заполнять" таблицу зала полностью КАРТИНКУ отбрось, это уже графическое отображение того, что будет храниться в базе. поля ред грин блю можно убрать оставить одно - колор в ТАБЛИЦЕ places, это класс места (как я вижу), в нем и будет храниться значение ред грин блу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:15:55 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Не вдаваясь в рассуждения по перечисленным предложениям, возвращаю нас к прежнему вопросу. В качестве параметра процедуре я передаю имя таблицы зрительного зала с местами (placesXYZ), а не таблицы цен. Именно это вызывает возникновение кода, написанного не в правилах хорошего тона программирования. Предлагаю двигаться именно в этом направлении. А если цены как-то на это повлияют, то как? Кстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:33:21 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokКстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. Ты его на основе чего рисовать-то будешь, этот скриншот ? Ладно, всё, эт клиника, я дальше не участвую ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:56:04 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, про MyIsam забыть все в InnoDB... где номер места и ряда..... вот есть ОПИСАТЕЛЬНАЯ таблица заЛОВ таб/залов Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. теперь таб.МестаВзалах Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:00:08 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, с этим разберитесь, дальше видно будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:01:05 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
авторя передаю имя таблицы зрительного зала с местами (placesXYZ),она будет у вас одна, что избавит от передачи куда то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:03:39 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
В предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:52:20 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
И как быть с ценой? Ведь за каждым местом (а не за мероприятием) должна быть закреплена цена. Причем у каждого мероприятия может быть разная "номенклатура" цен, которая должна быть рассредоточена по местам в зале? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:32:28 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Конечно можно добавить ссылку на мероприятие в виде еще одного поля в таблице мест. Но как разрастётся таблица каждого МестаВзалах скажем через определённое количество мероприятий? Поиск в такой таблице из-за её большого объёма будет затруднен. Не теряем ли мы большее приобретая меньшее? Еще один момент. Идентифицировать положение места в зрительном зале по ряду и номеру места затруднительно. Зрительные залы не всегда прямоугольной формы (ряды могут иметь "не нормированное количество мест" как первый и второй ряд на картинке), к которой можно пристыковать систему отсчёта и оперировать рядом и местом. Я выполняю идентификацию положения места по его id через файл структуры зала. Получается каждый раз для того чтобы выяснить положение места необходимо будет каждый раз обращаться к файлу структуры зала в таблице "ОПИСАТЕЛЬНАЯ таблица заЛОВ". Это тоже накладно. Сейчас благодаря полной комплектности мест сразу устанавливается положение места в зале, связь ID места и его ряда и места (и обратная связь) и его цены. Когда возникнет необходимость добавлять только занятые места эту связь придётся устанавливать каждый раз при добавлении (длинным путём), вместо того, чтобы сделать это один раз. Возможно ваше предложение как-то решает эти вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:34:50 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZivfedushokКстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. Ты его на основе чего рисовать-то будешь, этот скриншот ? Ладно, всё, эт клиника, я дальше не участвую ... 1. То что представлено на screenshot-те уже умеет "рисоваться". 2. Это будет уже третий раз когда я повторю одно и тоже - структура зала берётся из соответствующего текстового файла. 3. С клиникой - это немного перебор. Скорее всего человек, который делает заявление, а потом оказывается не в состоянии его обосновать не является клиентом клиники. Уже две страницы исписано, а так и не подобрались к вопросу об оптимизации структуры БД. Полагаю это показатель отсутствия ответа на мой вопрос. Критерием не оптимальности был назначен факт использования PREPARE STATEMENT. MasterZiv говорит о чём угодно, только не об этом. Какая тут структура? MasterZiv не смог подняться выше крайне непоследовательных рассуждений об излишестве отдельных полей, сопровождая это все банальными оскорблениями. Здесь более всего подойдёт не клиника, а блондинка в критические дни. При наличии самокритичности MasterZiv должен был бы поблагодарить меня за такую трату времени (до последнего надеялся что с пользой), чтобы показать ему, что прежде чем открыть рот нужно подумать головой и никогда не ставить телегу вперёд лошади. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:37:27 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokВ предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь? ну добавь связь, в чем проблема? в event добавить hall_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 01:51:16 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
3. С клиникой - это немного перебор. да нет, в самый раз. Уже две страницы исписано, а так и не подобрались к вопросу об оптимизации структуры БД. ага, потому что бы так и не врубился, что у тебя никакой структуры и никакой БД просто нет. тебе объясняют, объясняют, все об стену горох, там у тебя должна был бд о примерно 30 таблицах. у тебя ЧЕТЫРЕ!!! из которой одну можно выкинуть. вот иди, и пока тупо 30 таблиц не нарисуешь, не возвращайся. Вообще, у меня есть догадка, что может это вообще студент сессию зимнюю сдает так оригинально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:00:36 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokВ предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь?еще раз (я писал это выше) нужна таблица регистрации продажи билета на мероприятие. Это главная таблица... Записи в ней хранятся сколь угодно долго, это история для получения отчетов, скажем для бухгалтерии за месяц за год и тд и тп Объясняю в общих словах Она "свяжет" 1вариант ид мероприятия ид кинотеатра ид места-ряда т.е. кассир выбрала мероприятие, кинотеатр, место в зале и клацнула "продать" при этом добавилась запись в этой таблице ПРОДАЖИ ЭТО ВЕСЬ механизм регистрации продажи билета. или 2. вариант если у мероприятия будет форейжн на ид Кинотеатра (при таком проектировании если мероприятие проходит строго в одном кинотеатре, можно при заполнении нового мероприятия указать кинотеатр) то выбирает мероприятие (в нем уже будет поле ид_кинотеатр) клацает на место в зале для этого кинотеатра и продает. это и есть задача проектирования базы - как правильно определить и описать "сущности" как их связать, чтобы было удобно с базой работать, т.е. что-то регистрировать, делать отчеты и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:10:22 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, это и есть какое то задание ) гугл дает много ссылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:11:56 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
авторНо как разрастётся таблица каждого МестаВзалах скажем через определённое количество мероприятий?это Жесткая фиксированная таблица с имеющимися местами в ЗАЛЕ(-АХ), да и для базы данных миллион не помеха к примеру 2 ряда кинотеатра с признаком "пижонистости", красные для богатых на первом ряду, синие на втором для бедных idМестассылкаКинотеатр ряд место ранг1 ктОктябрь 1 1 красн2 ктОктябрь 1 2 красн3 ктОктябрь 1 3 красн4 ктОктябрь 1 4 красн5 ктОктябрь 1 5 красн6 ктОктябрь 2 6 син7 ктОктябрь 2 7 син8 ктОктябрь 2 8 син9 ктОктябрь 2 9 син в каком виде у вас "ФАЙЛ" структуры зала? это тоже должна быть таблица и она важна, об этом и идет речь. В БД нет файлов есть таблицы, это и есть опорная таблица... О цене пока речи не ведется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:24:17 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokИ как быть с ценой? Ведь за каждым местом (а не за мероприятием) должна быть закреплена цена. Причем у каждого мероприятия может быть разная "номенклатура" цен, которая должна быть рассредоточена по местам в зале?вот, это важный момент. Но с этим можно заняться и позже. 1. На концерт Киркорова цена будет выше, чем на БГ. Т.е. привязка цены должна быть к мероприятию 2. Ценность места, т.е. цвет, не зависит от мероприятия (как я понимаю), она заранее определена в зале. Как у вас на картинке, цвета в зале заранее определены и верны для каждого мероприятия. Т.е. это свойство объекта можно указать в его сущности, в таблице places/ (поле color или rang, kategoria) Это к размышлению.... Все же для начала отработайте базу с безценовой регистрацией покупки: 1. Кассир выбирает мероприятие, (в "анонсе" мероприятия уже будет указан "зал", судя по вашей таблице events это так), выбирает место в зале, регистрируется покупка билета. В таблице регистрации покупки уникальный ключ по вашей схеме (ид_мероприятие, ид места), чем исключается повторная продажа билета на тот же "сеанс". 2. Отработайте запрос обновления свободных мест в зале на сеанс (с учетом уже проданных) и как выше указывал MasterZiv - уберите min_ и max_price цены из events (цены потом будут вынесены в отдельную таблицу с привязкой к мероприятию и "классу" места в зале, это мое видение, но это пока опускаем) если у вас это курсовая, то отбросьте всякие "брони" "фигони" и т.д. сделайте рабочий железный скелет, чем больше вы будете накручивать, тем больше введете себя в тупичок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 08:40:02 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov ну как бы структура зала без указания его частей это, мягко говоря, не очень комильфо Потому надо обязательно добавить табличку zones_hall и id части добавить в таблицу мест в зале Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Также смею заметить, что номера ряда и места лучше сделать не числами, а текстовыми. Ибо, не факт, что нет в природе зала, в котором ряды и места могут обозначаться буквами (или даже сочетаниями букв). Тем более, что с этими данными нет большой надобности производить какие-то математические действия (ну разве что найти последний ряд, например, да и то это надо для каких-то программных обработок, которые пока что никому не нужны), чтобы держать их значения в цифрах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 10:29:19 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
ну а мероприятия разбить на две таблицы: событие и сеанс события Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Тогда уж без проблем можно привязать места к сеансам с указанием цены и признаком занятости Код: sql 1. 2. 3. 4. 5. Причем, как видно, цену лучше указывать не числом, а использовать идентификатор классификатора цен: Код: sql 1. 2. 3. 4. то есть видно, что для одинаковой цены можно сделать разные цвета в зависимости от мероприятия (чтобы логичнее смотрелась градация дешёвые-дорогие билеты, так как 1000 рублей на концерт Киркорова и 1000 рублей на спектакль театрального коллектива ДК Родина это, мне кажется, разные ценовые категории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 10:37:29 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39155303&tid=1832225]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 354ms |

| 0 / 0 |
