|
|
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Пытаюсь сделать следующую процедуру Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. В операторе SELECT вместо имени таблицы стоит переменная, которая содержит имя таблицы (заранее имя таблицы не известна). Однако переменная tableName воспринимается как имя таблицы и MySQL говорит, что такой таблицы не знает. Как ни пробовал ни пробовал ничего не получается. Что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 13:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 13:59 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Благодарю за отклик. Получилось следующее. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но теперь MySQL не признаёт выходную переменную SeatStatus. При вызове процедуры пишет - ERROR 1193 (HY000): Unknown system variable 'SeatStatus'. Как теперь это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 15:09 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok. Как ни пробовал ни пробовал ничего не получается. Что посоветуете? Про prepared statement тебе уже сказали, но вообще если тебе такое нужно, то у тебя что-то совсем не так с подходом к проектированию базы данных. не должно такое быть необходимо в нормальной бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 16:14 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Что конкретно не так с проектированием БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 16:36 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Пришлось переделать следующим образом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Но для того, чтобы вызвать процедуру необходимо сначала определить глобальные переменные, которые используются в процедуре. Код: sql 1. 2. Так работает. Оценивая на такую конструкцию как программист, я понимаю что что-то не так. Это моя первая база. Может поможите советом по исправлению "что-то не так"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 17:18 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
смысл в следующем (дополню MasterZiv) На простых вещах (абстрагируемся от вашей темы, хотя вы ее и не показали) 1. у вас есть объект ТОВАРЫ, эта "сущность" должна быть описана одной таблицей с полем ТИП (холодильник, микроволновка и т.д) 2. у вас же под каждый тип своя таблица. Это в корне не правильно. При подходе 2 вам придется стряпать Prepare statement для каждого товара При подходе 1 - достаточно SELECT * FROM Tovar WHERE tovar_type="холодильник" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 18:55 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Исправляюсь. Мне необходимо сделать электронную кассу для нескольких кассиров для продажи билетов на различные мероприятия. Разумеется необходима одна база, с которой они все будут работать. Есть одна таблица (MyISAM), которая содержит первичные данные по мероприятию: кто, где, с чем, и т.д. и в том числе название таблицы концертного зала. Получается, что одной записи таблицы с первичными данными о мероприятии соответствует одна вновь создаваемая таблица концертного зала. Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. Таблица концертного зала (InnoDB) содержит номер места, признак занятости и цену. То есть одна строка - одно место. Тип InnoDB + одно место сделано одной строкой для того, чтобы при транзакции были блокированы только те места, с которыми в данный момент времени работает кассир. Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:13 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Как, вы считаете это надо изменить, чтобы "вогнать" БД с стандартные рамки, не упуская возможности однострочной ("одноместовой") блокировки при транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:18 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
две таблицы первая продажи вторая конц зал (места) с полем (концертзал) все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:33 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok....кто, где, с чем, и т.д. и в том числе название таблицы концертного зала ...Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. - общая таблица Места в ззалах с полем Наим зала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:41 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokЧто конкретно не так с проектированием БД? структура неправильная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:45 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokИсправляюсь. Мне необходимо сделать электронную кассу для нескольких кассиров для продажи билетов на различные мероприятия. Разумеется необходима одна база, с которой они все будут работать. Есть одна таблица (MyISAM), которая содержит первичные данные по мероприятию: кто, где, с чем, и т.д. и в том числе название таблицы концертного зала. Получается, что одной записи таблицы с первичными данными о мероприятии соответствует одна вновь создаваемая таблица концертного зала. Концертных залов несколько, поэтому по своей структуре таблицы залов разнятся, так как похожих залов нет. ну вот это и есть ошибки в проектировании бд. не должно быть такого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:49 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokКак, вы считаете это надо изменить, чтобы "вогнать" БД с стандартные рамки, не упуская возможности однострочной ("одноместовой") блокировки при транзакции? дай мне структуру твоей бд, тогда я смогу сказать, как изменить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 19:50 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 20:40 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
две одинаковые картинки подряд получились... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 20:41 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, нет мне надо не это, а Create table для всех таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 21:24 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2016, 21:33 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Это чё за шизонутый бред ? Эт идиотизм какой-то, я тут нихрена не понимаю. во-первых прежде всего в MyISAV нет FOREIGN KEY, он их просто не поддерживает. Так что либо FOREIGN KEY + Inno, либо MyISAM. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Эт ещё более -- менее. много дебилизма, конечно, но ничего. Код: plaintext Код: plaintext 1. 2. Код: plaintext 1. 2. -- у тебя же не один день и час будет спектакль или что там.. А несколько дней и несколько спектаклей/шоу в день. Нужно делать отдельно расписание. А вот дальше идёт полный идиотизм Код: sql 1. 2. 3. 4. 5. 6. 7. Получается таблица из двух полей -- ID и ЦВЕТ. На кой такая вообще нужна? Пиши сразу ЦВЕТ вместо ссылки на ЦВЕТ. Если бы это был бы список городов, список стран -- понятно. Но это -- атомарное самодостаточное значение. Ни на хрен не нужен словарь. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Место, признак занятости и цвет. ОК, и как это всё со спектаклями и залами связано ? Не говоря уже о том, что место там обычно имеет РЯД, НОМЕР МЕСТА, и что-то типа того. Название хотя бы места должно быть ? Так что извини, правильной структуры тебе не будет. В общем, вместо того, чтобы проектировать БД нормально, ты пьёшь неумеренно пиво и мучаешь людей идиотскими вопросами из цикла "как сделать то, что никогда делать вообще не надо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 18:48 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Посмотрев данные "замечания", да еще сделанные в такой манере, делаю вывод - помощи не дождаться. Все "критика" свелась к не структуре БД, а к тому что "это поле лишнее и это тоже". До конца не понимая что нужно, делать такие выводы, мягко говоря, преждевременно. Если не хватает информации - спроси, из моих сообщений очевидно, что я готов предоставить что угодно. Самое главное, что всё сказанное не то чтобы явно не разрешает, но и не приближает к ответу на поставленный вопрос - "Что не так в структуре БД?". Итак, теперь об идиотизме и пр. MasterZivПро prepared statement тебе уже сказали, но вообще если тебе такое нужно, то у тебя что-то совсем не так с подходом к проектированию базы данных. не должно такое быть необходимо в нормальной бд. Если берешься писать сообщение выражай свои мысли ясно, а не загадками. Любая мысль должна быть логически структурирована и закончена (анализ, критика, вывод, рекомендация) - это означает что в конце должен быть вывод, являющийся руководством к действию. Интересно, сколько лет моему советчику, если приходится ему это писать? MasterZivструктура неправильная. Ну наконец-то удалось дотянуть мысль моего "советчика" практически до середины её выражения! MasterZivну вот это и есть ошибки в проектировании бд. не должно быть такого. Чего "такого"? Опять загадки... MasterZivдай мне структуру твоей бд, тогда я смогу сказать, как изменить. Здесь выясняется, что критика была сделана без анализа. Ведь для анализа необходимы исходные данные, которые мой "советчик" запросил практически в самом конце. MasterZivнет мне надо не это, а Create table для всех таблиц. Непонятно как представленная схема не даёт представление о структуре БД ... MasterZivЭто чё за шизонутый бред ? ... И в конечном итоге, чтобы получить совет я трачу время - рисую схемы и пр. Для чего? Для того, чтобы стать свидетелем того, как один индивид встал на четвереньки и просто начал гавкать. Если я захочу зоопарк, я пойду в зоопарк. Однако это форум ... Благодарю Alex_Ustinov за совет. Я его использовал - все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 22:39 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokПосмотрев данные "замечания", да еще сделанные в такой манере, делаю вывод - помощи не дождаться. Все "критика" свелась к не структуре БД, Да не в манере дело, и не в критике. А в отсутствии структуры БД как таковой вообще. Поясни ДЕТАЛЬНО твои create table, чтобы было что-то понятно. Я тебе детально расписал, что у тебя непонятно. Вот поясни, где у меня вопросы. Да, про пиво -- это я тебя спутал, извини, не ты это был.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 23:08 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokСамое главное, что всё сказанное не то чтобы явно не разрешает, но и не приближает к ответу на поставленный вопрос - "Что не так в структуре БД?". Наоборот, там всё очень ясно и близко к ответу. Фактически у тебя НЕТ никакой структуры БД вообще. Дальше цитаты не буду оформлять, извините... Если берешься писать сообщение выражай свои мысли ясно, а не загадками. Любая мысль должна быть логически структурирована и закончена (анализ, критика, вывод, рекомендация) - это означает что в конце должен быть вывод, являющийся руководством к действию. Я выражал свою мысль предельно ясно. Ещё раз: Если тебе нужно подтавлять в производственной БД имя таблицы в запрос в виде данных, у тебя неверно спроектирована база, её надо переделывать. У тебя не должно быть ни переменного числа таблиц в БД, ни "массивов таблиц", закодированных в их именах. Здесь выясняется, что критика была сделана без анализа. Ведь для анализа необходимы исходные данные, которые мой "советчик" запросил практически в самом конце. Чтобы сделать анализ, нужно понимать что-то. Твоя структура абсолютно непонятна, в ней нет мыслей. Непонятно как представленная схема не даёт представление о структуре БД ... Это и есть структура БД. Она даёт о структуре БД непосредственное представление. MasterZivЭто чё за шизонутый бред ? ... И в конечном итоге, чтобы получить совет я трачу время - рисую схемы и пр. Для чего? Для того, чтобы стать свидетелем того, как один индивид встал на четвереньки и просто начал гавкать. Если я захочу зоопарк, я пойду в зоопарк. Однако это форум ... Да ладно ты, ну, поругался я немного, ничего страшного. Но схема-то действительно бред сумашедшего. Благодарю Alex_Ustinov за совет. Я его использовал - все работает. Ну, ты можешь и дальше жить с кривой базой и мужественно преодолевать трудности, которых вообще не должно быть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2016, 23:15 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, препаре статемент это костыль ... дальше у вас будут проблемы реально что нам нужно - Регистрация покупки билета с местом-рядом в кинотеатр таким то кассиром таблицы 0. Кассиры KS 1. Мероприятия MP 2. Кинотеатры KT ---- Нужна опорная жесткая таблица место-ряд для каждого кинотеатра (одна на все) (id / id_kt / mesto / ryad ) MST 3. Таблица регистрации покупки билета на мероприятие в КиноТеатре REG_MP_KT при покупке INSERT idKS, idMP, idKT, idMST..... все, записали, что билет куплен (число где-то присоорудите) по моему очень просто из такой структуры вы найдете несложными запросами Свободные места и все остальное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 01:15 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, ну надо сказать что на самом деле предметная область достаточно сложна, потому что структура залов очень разная, и её сложно формализовать, мы такое делали, очень сложная предметка. но сложна она не с точки зрения бд, а просто анализа. а по бд там все правильно. но там таблиц 20 30 должно быть, но никак не 4 ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 08:17 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, конечно таблиц может быть по необходимости гораздо больше, просто более менее простой и правильный костячок не помешал бы ...остальное можно прикрутить по ходу. Насчет залов - да. структура может быть сложная - галерки...фигорки и т.д. но можно тоже закодировать, на клиенте для визуализации распарсить... Схема то простая, как покупка ж/д билета на одноименном сайте....... есть поезд-вагон с местами, покупаем билетик ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 09:04 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, ничего нового ты тут не написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 19:58 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Вот скажи пожалуйста, вот таблица Код: sql 1. 2. 3. 4. 5. 6. 7. по сути всё просто -- id, занято или нет, и цена. А вот представь такую задачу -- нужно выдать на заданное событие все свободные места для выбора пользователя. Ты ЧТО пользователю будешь показывать, чтобы он что-то выбрал ? ID ? Вот и получается, что проблема даже не в "Как имя таблицы в запросе выразить переменной", а в том, что у тебя вообще нет БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:23 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
У всех полей таблиц названия говорящие. Чего ещё здесь не хватает для того, чтобы понять как избежать такого неловкого применения PREPARE STATEMENT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:24 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokПо id определяется ряд и место, исходя из структуры в halls.file. Вся структура зрительного зала с расположением мест отображается на странице браузера (вид зала сверху). Кассир продающий места видит занятые, не занятые места, за 1000руб, за 3коп. ... fedushokДля визуализации этого различия добавлен цвет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:30 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokfedushokПо id определяется ряд и место, исходя из структуры в halls.file. Вся структура зрительного зала с расположением мест отображается на странице браузера (вид зала сверху). Кассир продающий места видит занятые, не занятые места, за 1000руб, за 3коп. ... fedushokДля визуализации этого различия добавлен цвет. Обычно когда ты смотришь на билет, там написано: "Партер, левая сторона, 5-ый ряд, место 23". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:32 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Так и сделано. Когда кассир выбирает место он видит № ряда, № места и цену. Работа с id скрыта от кассира. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 20:40 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
прочитай что написал MasterZivMasterZivВот скажи пожалуйста, вот таблица Код: sql 1. 2. 3. 4. 5. 6. 7. по сути всё просто -- id, занято или нет, и цена. А вот представь такую задачу -- нужно выдать на заданное событие все свободные места для выбора пользователя. Ты ЧТО пользователю будешь показывать, чтобы он что-то выбрал ? ID ? Вот и получается, что проблема даже не в "Как имя таблицы в запросе выразить переменной", а в том, что у тебя вообще нет БД. Вакант можно убрать, сам факт наличия записи в этой таблице будет признаком занятости Иначе тебе придется для каждого события "заполнять" таблицу зала полностью КАРТИНКУ отбрось, это уже графическое отображение того, что будет храниться в базе. поля ред грин блю можно убрать оставить одно - колор в ТАБЛИЦЕ places, это класс места (как я вижу), в нем и будет храниться значение ред грин блу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:15 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Не вдаваясь в рассуждения по перечисленным предложениям, возвращаю нас к прежнему вопросу. В качестве параметра процедуре я передаю имя таблицы зрительного зала с местами (placesXYZ), а не таблицы цен. Именно это вызывает возникновение кода, написанного не в правилах хорошего тона программирования. Предлагаю двигаться именно в этом направлении. А если цены как-то на это повлияют, то как? Кстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:33 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokКстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. Ты его на основе чего рисовать-то будешь, этот скриншот ? Ладно, всё, эт клиника, я дальше не участвую ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 21:56 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, с этим разберитесь, дальше видно будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:01 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
авторя передаю имя таблицы зрительного зала с местами (placesXYZ),она будет у вас одна, что избавит от передачи куда то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:03 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
В предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 22:52 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
И как быть с ценой? Ведь за каждым местом (а не за мероприятием) должна быть закреплена цена. Причем у каждого мероприятия может быть разная "номенклатура" цен, которая должна быть рассредоточена по местам в зале? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:32 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Конечно можно добавить ссылку на мероприятие в виде еще одного поля в таблице мест. Но как разрастётся таблица каждого МестаВзалах скажем через определённое количество мероприятий? Поиск в такой таблице из-за её большого объёма будет затруднен. Не теряем ли мы большее приобретая меньшее? Еще один момент. Идентифицировать положение места в зрительном зале по ряду и номеру места затруднительно. Зрительные залы не всегда прямоугольной формы (ряды могут иметь "не нормированное количество мест" как первый и второй ряд на картинке), к которой можно пристыковать систему отсчёта и оперировать рядом и местом. Я выполняю идентификацию положения места по его id через файл структуры зала. Получается каждый раз для того чтобы выяснить положение места необходимо будет каждый раз обращаться к файлу структуры зала в таблице "ОПИСАТЕЛЬНАЯ таблица заЛОВ". Это тоже накладно. Сейчас благодаря полной комплектности мест сразу устанавливается положение места в зале, связь ID места и его ряда и места (и обратная связь) и его цены. Когда возникнет необходимость добавлять только занятые места эту связь придётся устанавливать каждый раз при добавлении (длинным путём), вместо того, чтобы сделать это один раз. Возможно ваше предложение как-то решает эти вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:34 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZivfedushokКстати никаких картинок в базе нет. Отбрасывать нечего. Это screenshot браузера открытого на странице зрительного зала, для демонстрации того, что кассир работает не с id, а номерами мест и рядов. Ты его на основе чего рисовать-то будешь, этот скриншот ? Ладно, всё, эт клиника, я дальше не участвую ... 1. То что представлено на screenshot-те уже умеет "рисоваться". 2. Это будет уже третий раз когда я повторю одно и тоже - структура зала берётся из соответствующего текстового файла. 3. С клиникой - это немного перебор. Скорее всего человек, который делает заявление, а потом оказывается не в состоянии его обосновать не является клиентом клиники. Уже две страницы исписано, а так и не подобрались к вопросу об оптимизации структуры БД. Полагаю это показатель отсутствия ответа на мой вопрос. Критерием не оптимальности был назначен факт использования PREPARE STATEMENT. MasterZiv говорит о чём угодно, только не об этом. Какая тут структура? MasterZiv не смог подняться выше крайне непоследовательных рассуждений об излишестве отдельных полей, сопровождая это все банальными оскорблениями. Здесь более всего подойдёт не клиника, а блондинка в критические дни. При наличии самокритичности MasterZiv должен был бы поблагодарить меня за такую трату времени (до последнего надеялся что с пользой), чтобы показать ему, что прежде чем открыть рот нужно подумать головой и никогда не ставить телегу вперёд лошади. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2016, 23:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokВ предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь? ну добавь связь, в чем проблема? в event добавить hall_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 01:51 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
3. С клиникой - это немного перебор. да нет, в самый раз. Уже две страницы исписано, а так и не подобрались к вопросу об оптимизации структуры БД. ага, потому что бы так и не врубился, что у тебя никакой структуры и никакой БД просто нет. тебе объясняют, объясняют, все об стену горох, там у тебя должна был бд о примерно 30 таблицах. у тебя ЧЕТЫРЕ!!! из которой одну можно выкинуть. вот иди, и пока тупо 30 таблиц не нарисуешь, не возвращайся. Вообще, у меня есть догадка, что может это вообще студент сессию зимнюю сдает так оригинально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:00 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokВ предлагаемом варианте отсутствует связь самого мероприятия и (как я понимаю) места в зрительном зале. Как мыслится эта связь?еще раз (я писал это выше) нужна таблица регистрации продажи билета на мероприятие. Это главная таблица... Записи в ней хранятся сколь угодно долго, это история для получения отчетов, скажем для бухгалтерии за месяц за год и тд и тп Объясняю в общих словах Она "свяжет" 1вариант ид мероприятия ид кинотеатра ид места-ряда т.е. кассир выбрала мероприятие, кинотеатр, место в зале и клацнула "продать" при этом добавилась запись в этой таблице ПРОДАЖИ ЭТО ВЕСЬ механизм регистрации продажи билета. или 2. вариант если у мероприятия будет форейжн на ид Кинотеатра (при таком проектировании если мероприятие проходит строго в одном кинотеатре, можно при заполнении нового мероприятия указать кинотеатр) то выбирает мероприятие (в нем уже будет поле ид_кинотеатр) клацает на место в зале для этого кинотеатра и продает. это и есть задача проектирования базы - как правильно определить и описать "сущности" как их связать, чтобы было удобно с базой работать, т.е. что-то регистрировать, делать отчеты и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:10 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, это и есть какое то задание ) гугл дает много ссылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 02:11 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokИ как быть с ценой? Ведь за каждым местом (а не за мероприятием) должна быть закреплена цена. Причем у каждого мероприятия может быть разная "номенклатура" цен, которая должна быть рассредоточена по местам в зале?вот, это важный момент. Но с этим можно заняться и позже. 1. На концерт Киркорова цена будет выше, чем на БГ. Т.е. привязка цены должна быть к мероприятию 2. Ценность места, т.е. цвет, не зависит от мероприятия (как я понимаю), она заранее определена в зале. Как у вас на картинке, цвета в зале заранее определены и верны для каждого мероприятия. Т.е. это свойство объекта можно указать в его сущности, в таблице places/ (поле color или rang, kategoria) Это к размышлению.... Все же для начала отработайте базу с безценовой регистрацией покупки: 1. Кассир выбирает мероприятие, (в "анонсе" мероприятия уже будет указан "зал", судя по вашей таблице events это так), выбирает место в зале, регистрируется покупка билета. В таблице регистрации покупки уникальный ключ по вашей схеме (ид_мероприятие, ид места), чем исключается повторная продажа билета на тот же "сеанс". 2. Отработайте запрос обновления свободных мест в зале на сеанс (с учетом уже проданных) и как выше указывал MasterZiv - уберите min_ и max_price цены из events (цены потом будут вынесены в отдельную таблицу с привязкой к мероприятию и "классу" места в зале, это мое видение, но это пока опускаем) если у вас это курсовая, то отбросьте всякие "брони" "фигони" и т.д. сделайте рабочий железный скелет, чем больше вы будете накручивать, тем больше введете себя в тупичок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 08:40 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, не нужно все это... если цвета топик стартер указывал как поля, это непонимание что такое таблица. там нужен минимализм для начала. Спора о структуре базы даже не ведется. Шаги - 1. понять 2. Осознать....и все остальное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 11:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_UstinovMr.Fontaine, если цвета топик стартер указывал как поля, это непонимание что такое таблица. Это вот о чём? Про то, что у авторра темы цвет записывается в три поля? Где тут непонимание таблиц? Какая разница как будет храниться цвет, в трёх полях FF, FF, FF или в одном FFFFFF? По-моему тут разница просто в обработке значений этих полей. Конечно при варианте трёх полей надо будет их соединять при любом запросе, но что в этом криминального? TINYINT UNSIGNED как раз даёт значения от 0 до 255. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 14:02 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
))) с вами еще поспорить? это свойство сущности , описывается одним полем, зачем плодить 3 поля для одного свойства? Задумайтесь.... Каким вы запросом соберете к примеру общее количество красных кресел? а синих? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 14:41 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
)))) а как вы будете хоть примерно соединять категорию места с ценой? если green=green то одно а если blue=blue то другое? а если в зале появится еще одна категория, вы будете DDL корячить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 14:45 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
короче суть этого поля - ценовая категория, там должны быть циферки 1,2,3,4,5,6... сколько угодно для клиента (в PHP допустим) раскрашивайте как угодно все, хорош, поигрались и хватит... задачка с PHP-задачника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 14:50 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, Посмотрел ваши сообщения, но ухватить идею в целом у меня, к сожалению, не получилось. Можно тоже самое или в виде схемы которую я нарисовал на картинке, или в виде соответствующей последовательности CREATE TABLE с промежуточными комментариями? Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 18:14 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Кстати, я не студент. Просто в прошлом году решил освоить web-программирование, и как раз подвернулся заказ. Не хочу упустить такую удачу. Надеюсь вы меня поймёте... У меня есть опыт в программировании, но только не в проектировании БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 18:24 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, только по мере возможности. В общих чертах. В проектировании БД много частных вещей. У меня есть основная работа, поэтому времени немного. Выложите то что вы называете файлом зала. И почему он именно такой (он был приложен к заказу?) ------ И еще, если вы нашли заказ по интернету - часто обманывают, можете нарваться... Но это ваше дело ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 20:09 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovfedushok, только по мере возможности. В общих чертах. В проектировании БД много частных вещей. У меня есть основная работа, поэтому времени немного. Без вопросов. Я буду рад любой помощи. Alex_UstinovВыложите то что вы называете файлом зала. И почему он именно такой (он был приложен к заказу?) Код: html 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. В качестве исходных данных была картинка одного зала сверху. Потом надеюсь будут еще. Файл имеет такой формат, так как я полагаю этим форматом можно представить любой зал. Идея сведена к измерению пространства зала посредством габаритов одного сидения и его margin. Целый ряд описывается последовательным перечислением типов сидений (и воображаемых в том числе, которые нужны для создания пустого пространства и пр), которые составляют этот ряд. Ряды образуют зал. Файл использую потому, что когда начинал не было даже первичных знаний ДБ. Но сейчас вижу, что БД для этого не очень годятся. А вдруг зал будет разэдаким и формат хранения зала менять придется ... Alex_UstinovИ еще, если вы нашли заказ по интернету - часто обманывают, можете нарваться... Но это ваше дело Заказ одного хорошего знакомого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2016, 20:35 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushokВ качестве исходных данных была картинка одного зала сверху. Потом надеюсь будут еще. Файл имеет такой формат, так как я полагаю этим форматом можно представить любой зал. Идея сведена к измерению пространства зала посредством габаритов одного сидения и его margin. Целый ряд описывается последовательным перечислением типов сидений (и воображаемых в том числе, которые нужны для создания пустого пространства и пр), которые составляют этот ряд. Ряды образуют зал. Файл использую потому, что когда начинал не было даже первичных знаний ДБ. Во, пошли мысли! А чего раньше-то, где они были? И где же всё вышеперечисленное в БД и её структуре? А зал бы я делал так: Таблица "Зал" Таблица "Элемент зала" с иерархией элементов зала (начинается от зала). (возможно, два типа, с местами и без) Таблица "места" со ссылкой на элемент зала. и к залу -- образ зала, нарисованный на SVG. А в "месте" -- полигон, изображающий это место на плане зала. Далее рисуем SVG, и мышкой можно тыкать в места и "попадать" в нужное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 01:00 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
MasterZiv, только засел, уже ... примерчик fedushok, только для понимания смысла структура Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. данные Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Код: sql 1. в структуре возможно лучше сделать табл СЕАНС исключив ФОрейэн hall_id из Action и добавив в Action _date (таблица так и будет называться SEANS) Для цены делаем табл PRICE (id, seans_id FK, rang , COST) - так как цена билета может варьироваться и от времени проведения, Допустим ДНЕМ ДЕШЕВЛЕ. Это я так вижу... Добавим в STOCK(таблица продаж) поле ЦЕНА, в отработанном интерфейсе она будет подтягиваться по уже выбранному сеансу и месту. Все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 01:27 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Что касается прорисовки мест - .... в PHP на основании доп полей в PLACE Можно уместить и в одной таблице простенькую схему зала. Добавим row_num для каждого зала в PLACE SELECT ORDER BY rownum для строгости порядка далее для примера если опущено место - это проход вдоль зала если "пусто" в поле ряд - проход поперек можно буквенные символы в доп поле и т.д. можно добавить поле этаж, сектор (условный) т.е. описать зал условно всегда можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 01:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, имхо, суть не в прорисовке мест, это всего лишь украшательство..... ... ну и удобство конечно для кассира но база должна быть понятной и логичной исходя из условия задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 01:45 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov))) с вами еще поспорить? это свойство сущности , описывается одним полем, зачем плодить 3 поля для одного свойства? Задумайтесь.... Каким вы запросом соберете к примеру общее количество красных кресел? а синих? Спорить тут думаю не о чем. Естественно, в одном поле хранить удобнее, но хранение цвета по составляющим в трёх полях тоже не стоит считать критической ошибкой. Я уже писал, что в запросах при определении полного значения цвета придётся соединять три поля, но вот например, вопросы насыщенности определённой составляющей цвета, при разбиении на три поля, решать проще. Вообще, вопрос схож с хранением ФИО. Как его удобнее хранить в одном поле или в трёх.... В общем, думаю спорить не о чем, в зависимости от задумок использования цветов, так и надо хранить: или одним полем или с разбивкой по составляющим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 06:23 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov структура Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. И всё-таки таблица мест неполная. По таком таблице схему зала не построить однако. Хотя бы из-за того, что нет указания, между какими местами находятся проходы, колонны и т.д. Более того, - нет возможности выбора мест в партере или на балконе. - нет возможности определения секторов (не каких-то условных, а собственно говоря, физических, которые очень часто используются в спортивных учреждениях, таких как дворцы спорта, стадионы Да и всё-таки текстовое обозначение ряда и номера места тоже в общем-то необходимо прикрутить. Ибо, повторяю, вполне возможно найти зал, в котором можно встретить ряд А, ряд В и т.д. А integer поля ryad и mesto использовать исключительно для построения схемы зала в браузере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 06:48 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
[quot Mr.Fontaine]Alex_Ustinov))) Вообще, вопрос схож с хранением ФИО. Как его удобнее хранить в одном поле или в трёх.... В общем, думаю спорить не о чем, в зависимости от задумок использования цветов, так и надо хранить: или одним полем или с разбивкой по составляющим. в этом поле не хранится значение цвета, здесь хранится "ценовая категория места" , я это уже писал. В дальнейшем это может понадобиться в запросах. Допустим человек просит "не самые плохие места"... и проще выбрать категорию >1 чем цвет <> синий (или какой он будет, этот плохой цвет). А если он захочет совсем не плохие места, то проще взять >2 ,нежели "не красный и не синий". хотя можно это сделать и через ценовую таблицу, я уже углубляюсь в дебри... ФИО - это три отдельные составляющие. Допустим, поиск может быть и по имени и по отчеству. В данном случае вы предлагаете делить Фамилию на три части. И где вы видели чтобы цвет АВТОмобиля к примеру хранили в трех полях. Смысл -> В этом приложении есть другие именно важные моменты, кроме как заниматься такой ..., как вопрос о хранении цвета авторИ всё-таки таблица мест неполная. По таком таблице схему зала не построить однако. Хотя бы из-за того, что нет указания, между какими местами находятся проходы, колонны и т.д. Более того, - нет возможности выбора мест в партере или на балконе. - нет возможности определения секторов (не каких-то условных, а собственно говоря, физических, которые очень часто используются в спортивных учреждениях, таких как дворцы спорта, стадионы Да и всё-таки текстовое обозначение ряда и номера места тоже в общем-то необходимо прикрутить. Ибо, повторяю, вполне возможно найти зал, в котором можно встретить ряд А, ряд В и т.д. А integer поля ryad и mesto использовать исключительно для построения схемы зала в браузере повтор -> ЭТО сейчас не главное, прикручивайте ЧТО угодно, когда будет работать покупка-бронь билетов. Я показал минимум, что должно быть. да не нужно перестраивать-перерисовывать весь зал. В моем понимании (я на своем уровне владею PHP) -> один раз отрисовали зал, затем повторно раз в секунду (??) или по событию JavaScript нам интересно только свойство - Занято / неЗанято, чтобы задизейблить КЛИК. на этом КРЕСЛЕ. AJAX в действии... Раскрашки - Чистейший уклон в сторону ненужного. Мы как бы в подфоруме по MySQL и Самый важный момент в этой базе - взаимодействие одновременной работы нескольких операторов/покупателей... т.е. отработка исключения одновременной покупки билета на одно место. Понятно что будут уникальные ключи и т.д. Пишу одно и тоже, странное дело.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 08:58 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov, про цвет мы с Вами о разном говорим: Вы про свой вариант, я - про вариант топикстартера. Я собственно говоря и не предлагаю хранить цвет в трёх полях (в моём варианте кстати, цвет один полем прописан, но видимо Вы мой вариант и не смотрели даже). Я говорю лишь о том, что вполне может быть возможность хранения цвета с разбивкой на составляющие. Цвет всё-таки это не фамилия - это всё-таки ФИО. Физически все три составляющие можно изменять до потери памяти отдельно друг от друга. И уж про цвет автомобиля. Естественно, что в доске объявлений о продаже нет никакой необходимости разбивать цвет на три поля, а вот при реализации какого-либо конфигуратора автомобилей (необязательно видимый кстати, простому покупателю) запросто можно разбить на три столбца, чтобы выбирать похожие цвета по насыщенности одного из компонентов цвета. Вот в данном случае довольно похожий вариант с конфигуратором автомобилей просматривается: администратор сайта вполне может выбирать каким цветом выделить ту ли иную цену, и ему вполне возможно понадобится иметь поиск по каждой составляющей цвета. Повторяю, это решение автора, нужно ли ему хранить цвет в трёх полях или в одном. Мы мало знаем о задаче, чтобы утверждать, что разбивка цвета на составляющие это признак принципиального непонимания принципов построения таблиц. Может хватит уже об этом спорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 12:27 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovодин раз отрисовали зал ну и как Вы его отрисуете по Вашей табличке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 12:30 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineМожет хватит уже об этом спорить?так прекращайте, я не спорю. Держите хоть в 8 полях Топик стартер указал, что у него висит заказ на данный функционал. Заниматься на начальном этапе украшательствами нет смысла. Еще структура базы не определена. Может хватит вам акценты переставлять на ненужные вещи? Посмотрите объективно, о чем вы говорите....: есть таблица зала (как бы не хотелось, в ней будут присутствовать поля ряд, место), возьмем 500 мест. И что, администратор захотел поменять цвета для ходовой категории мест и будет менять в 100 записях? Нет конечно. Об этом и речь, цвета в этой таблице и не нужны. Так может проще водрузить это "администратору" в момент заполнения ценовых категорий на сеанс? А еще проще заполнить цветами радуги 7 категорий и больше не думать об этом? А подключатся PHP-HTML щики и сразу скажут - решать проще средствами CSS - и будут тоже правы. в любом случае, это не функционал, это тюнинг, любой вариант не относится к основной задаче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 13:36 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, для начала в простом табличном варианте, как строятся динамические таблицы у топик стартера в тексте есть разумный смысл авторТипы мест 1 сидение 2 пустое место 3 обозначение ряда 4 полупустое место 5 пустой рядсразу оговорюсь, я речь об цирковых аренах не веду (или стадионах). Для таких вещей прикладывается план с "секторами" и в табличном виде можно выбирать ряд место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 13:48 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinov[ Заниматься на начальном этапе украшательствами нет смысла. Еще структура базы не определена. Может хватит вам акценты переставлять на ненужные вещи? Я как раз о структуре базы говорю. Если на начальном этапе топикстартер сделает одно поле, а в середине ТЗ выяснится, что полей надо три, то придётся переделывать структуру базы и функционал однако. При чём тут украшательства? Хватит уж чушь-то писать. Вообще наш разговор начался с Вашей фразы если цвета топик стартер указывал как поля, это непонимание что такое таблица. я посмотрел на таблицу топистартера Код: sql 1. 2. 3. 4. 5. 6. 7. 8. и сделал замечание, что Какая разница как будет храниться цвет, в трёх полях FF, FF, FF или в одном FFFFFF? Вы так и дали ответа, почему хранение параметров цвета в трёх столбцах, а не в одном, это непонимание что такое таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 14:21 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_UstinovПосмотрите объективно, о чем вы говорите....: есть таблица зала (как бы не хотелось, в ней будут присутствовать поля ряд, место), возьмем 500 мест. И что, администратор захотел поменять цвета для ходовой категории мест и будет менять в 100 записях? Нет конечно. Об этом и речь, цвета в этой таблице и не нужны. Так может проще водрузить это "администратору" в момент заполнения ценовых категорий на сеанс? А еще проще заполнить цветами радуги 7 категорий и больше не думать об этом? А подключатся PHP-HTML щики и сразу скажут - решать проще средствами CSS - и будут тоже правы. в любом случае, это не функционал, это тюнинг, любой вариант не относится к основной задаче. Вы тут опять же о чём? какие сто записей? В каком варианте структуры БД в таблице зала есть цвет? Ни топикстартер, ни я такого вообще ни говорили... ...А, понятно, Вы опять же говорите о СВОЕЙ схеме, в которой есть в таблице зала колонка color. Так никто в ваш столбец color и не собирается писать цвет. Даже Вы не собираетесь этого делать. Вы придумали у себя в голове обозначения что 1 из этого столбца соответствует какому-то цвету, 2 - соответствует другому непонятно какому цвету и т.д., Топикстартер же сделал проще: в таблице мест в зале у него есть поле id_pr, которое является вашим же color, только имеет более осмысленное, для его предназначения, название и то, что ваше поле color ссылается на какие-то значения из головы, а у него id_pr ссылается на таблицу prices_table, в которой можно увидеть значение цвета и цены, выбранного для данного места в зале. Администратор сайта изменит цвет только в одной записи таблицы prices_table и даже не задумается сколько мест на картинке зала изменит цвет, ему не нужно знать это P.S. Честно говоря, глядя на Ваши color и авторские id_pr складывается ощущение, что с пониманием процесса проектированием БД дела у топикстартера обстоят получше чем у Вас. Извините, что обидел. Жаль толлко своего потраченного времени на этот разговор.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 14:38 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_UstinovMr.Fontaine, для начала в простом табличном варианте, как строятся динамические таблицы для начала кассиру надо сразу понимать где в зале находятся проходы. Ибо сразу же первый же покупатель может попросить место крайнее к проходу, но в центре зала. По вашей табличке этого сделать не получится. И продажи сразу же придётся закрыть, так и не продав ни одного билета. Alex_Ustinovу топик стартера в тексте есть разумный смысл авторТипы мест 1 сидение 2 пустое место 3 обозначение ряда 4 полупустое место 5 пустой ряд вообще тут непонятно, при чём тут топикстартер, я спрашивал про ВАШ вариант таблички мест в зале. Бред вобщем какой-то... Alex_Ustinovсразу оговорюсь, я речь об цирковых аренах не веду (или стадионах). Для таких вещей прикладывается план с "секторами" и в табличном виде можно выбирать ряд место. Ну и зря. А то ведь придётся после пары концертов приостановить работу кассы, так как окажется, что все ближайшие мероприятия запланированы в цирке и на стадионах. Тут и поймёте что план с секторами, балконами, ярусами надо было сразу предусматривать на этапе проектирования БД. Но Вам почему-то это казалось ненужными украшательствами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 14:49 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineЯ как раз о структуре базы говорю. Если на начальном этапе топикстартер сделает одно поле, а в середине ТЗ выяснится, что полей надо три, то придётся переделывать структуру базы и функционал однако. При чём тут украшательства? Хватит уж чушь-то писать.Хватит вам уже.....хорош демагогией заниматься. Вы говорите о раздувании структуры Базы и постоянно уводите разговор в сторону третьестепенного функционала. ТЗ я не видел, вы тоже. Да и нет его. Топикстартер только что занялся Web-программированием, в базах первый раз. Читая весь этот бред, он уже возможно в панике. Я задал вопрос, вы не ответили автора как вы будете хоть примерно соединять категорию места с ценой? если green=green то одно а если blue=blue то другое? авторВы так и дали ответа, почему хранение параметров цвета в трёх столбцах, а не в одном,Возможно не так понял. Если это RGB то прошу прощения. Имеет место на жизнь. Не несет функционала, поэтому неважно. В двух таблицах не было ни привязки к залу, ни ряда-места, поэтому таблицу считал как таблица мест в зале. с указанием цвета каждого места. Каюсь просмотрел. У вас еще ко мне будут вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 14:55 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
авторНу и зря. А то ведь придётся после пары концертов приостановить работу кассы, так как окажется, что все ближайшие мероприятия запланированы в цирке и на стадионах. Тут и поймёте что план с секторами, балконами, ярусами надо было сразу предусматривать на этапе проектирования БД. Но Вам почему-то это казалось ненужными украшательствами...))) бред полный.... авторзапланированы в цирке и на стадионах.вы не покупали билет на стадион, сходите, вам покажут план секторов... да я еще и описал ситуацию с Округлыми залами... Если бы вы упомянули об интернет сайте, где пользователь сам покупает себе билет и он не знает зала, и ему надо 2-3 места рядом, я бы с вами согласился, а так... все с вами ясно... Каждый кассир, ну скажем почти каждый, имеет данные по залу, да и не только на бумаге, но и на стене ПЛАКАТ висит авторвообще тут непонятно, при чём тут топикстартер, я спрашивал про ВАШ вариант таблички мест в зале. Бред вобщем какой-то...бред не несите вы хоть что-то в Вэбе делали в динамике? пример простой таблицы зала (или сектора, как вам угодно) в тэгах форума Проход перед заломРяд1Место нумер1 Проход центральныйМесто нумер2 Место Нумер3Ряд2Место нумер1 Проход центральныйМесто нумер2 Место Нумер3Проход среднийРяд1Место нумер1 Проход центральныйМесто нумер2 Место Нумер3Ряд2Место нумер1 Проход центральныйМесто нумер2 Место Нумер3 хорош, хорош, хорош.... успокойтесь уже ваши кассы еще ждут отрисовки, мои уже с утра работают и успешно продают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 15:18 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_UstinovЯ задал вопрос, вы не ответили автора как вы будете хоть примерно соединять категорию места с ценой? если green=green то одно а если blue=blue то другое? Так это соединение сразу у автора темы прописано в табличке prices_table id_pr - категория места, price_value - цена id_pr INT UNSIGNEDprice_value INT UNSIGNEDred TINYINT UNSIGNEDgreen TINYINT UNSIGNEDblue TINYINT UNSIGNED110002551280215002001000320000100255авторВы так и дали ответа, почему хранение параметров цвета в трёх столбцах, а не в одном,Возможно не так понял. Если это RGB то прошу прощения. Имеет место на жизнь. Не несет функционала, поэтому неважно. В двух таблицах не было ни привязки к залу, ни ряда-места, поэтому таблицу считал как таблица мест в зале. с указанием цвета каждого места. Каюсь просмотрел. У вас еще ко мне будут вопросы?[/quot] Конечно, привязки к залу у автора нет. Если Вы под двумя таблицами понимаете эти Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Так топикстартер же и сказал, что привязка к залу идёт через название этих двух таблиц. Об этом тема и началась. У него эти две таблицы на каждое мероприятие создаются вновь и вновь. Из-за этого на автора, собственно говоря, и накинулись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 15:24 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovвы не покупали билет на стадион, сходите, вам покажут план секторов...С началом фразы не угадали, вторая половина верна. Более того, добавлю, что разбиение на сектора совем не означает, что каждый сектор анчинается с первого ряда и первого места. Нумерация мест бывает сквозная по всем секторам Alex_Ustinovда я еще и описал ситуацию с Округлыми залами... Форма зала на проектирование в БД вообще ни как не влияет. Alex_UstinovЕсли бы вы упомянули об интернет сайте, где пользователь сам покупает себе билет и он не знает зала, и ему надо 2-3 места рядом, я бы с вами согласился, а так... все с вами ясно... Каждый кассир, ну скажем почти каждый, имеет данные по залу, да и не только на бумаге, но и на стене ПЛАКАТ висит Во-первых, какая разница кто где покупает билет? Сайты, на то и сайты, что каждый откуда угодно может посмотреть и купить. Или чё, Вы предпочитаете далать сайт для зрителей со схемами залов, а для кассиров программу без схем, простые квадратики с номерами рядов и мест???? Пускай кассиры по бумажкам схемы залов смотрят? Ну-ну.... Да и смотрю, Вы давненько билетов никуда не покупали. Щас даже у нас во многих кассах стоят по два монитора: один к покупателю, другой к кассиру. И кассир сам предлагает выбрать места зрителю. так что зачем Вы сказали, что есть принципиальная разница покупки билета зрителем самостоятельно и выдачей кассиром билета вообще не понимаю. Мне надо два места в центре зала у прохода, но я предпочитаю сам посмотреть на какой ряд сесть: на пятый или на шестой. и с какой стороны с правой или с левой Кстати, немного отвлекусь на пример из жизни. Тут в новогодние праздники покупал билеты в цирк на группу человек, так было условие, что за 800 рублей и подальше от выхода артистов. Экран как раз был только у кассира, нам она ничего не показывала. Да, сама выбрала билеты, чтоб подходили под наши условия и чтоб вместились 8 человек, но осадок, что я мог бы выбрать получше остался однако. Мы бы с женой может быть и не на один ряд купили бы. По три-четыре места друг за другом на двух-трёх смежных рядах. В общем не очень приятные впечатление от покупки билетов в цирк. авторвы хоть что-то в Вэбе делали в динамике? В Вэбе я был с 2001 по 2009 год. Делал много чего, но тут не об этом. Мы больше про таблички разговариваем.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 15:46 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Mr.Fontaine, так в том и суть, что это было полное непонимание топикстартером. Сейчас он понял, задача решается дальше. Цель форума - натолкнуть на мысль, а не выдать готовое решение. Раз сказали два сказали, он опять о своей передаче в препарестатмнт. Никто не взъелся, я не отказался от дальнейшего прочтения топика, вчера перед сном набросал как видел (и то после "опубликования" понял. что не совсем так...) честно говоря пробегаю мельком топик, вчитываться в суть глубоко - это если свободное время... Я хотел показать принцип получения свободных мест, как всегда это бывает, справочный таблиц куча а функциональность непонятна А если углубляться дальше, то здесь действительно можно прикрутить множество таблиц и дополнительного функционала. А то что мы уже с вами обсуждаем, я больше чем уверен, решаться будет в PHP+javaScript (я думаю у ТС PHP), вопросы для соседнего форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 15:47 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
Читая ваши сообщения, в воображении всплывает басня Крылова по лебедь, рак и щуку. Вы начинается додумывать за меня. Источником такой несогласованности конечно является неполнота информации, которую в рамках форума полностью восполнить сложно. Пусть не своевременно, но я постараюсь часть ваших разногласий разрешить. Цвет места. Его я храню в RGB, чтобы его было удобно инвертировать. Уже писал об этом. Считаю, что мне его целесообразней хранить в базе. Mr.FontaineТак топикстартер же и сказал, что привязка к залу идёт через название этих двух таблиц. Об этом тема и началась. У него эти две таблицы на каждое мероприятие создаются вновь и вновь. Из-за этого на автора, собственно говоря, и накинулись. Совершено верно. Mr.Fontaine, вы совершено верно определили суть диалога с моей стороны. Alex_UstinovРаз сказали два сказали, он опять о своей передаче в препарестатмнт. Восстанавливая хронологию, следует отметить. На первоначальный вопрос мне была рекомендована конструкция PREPARE STATEMENT, которая привела к коду (хотя и рабочему) построенному не в лучших традициях программирования. Я сразу выразил это сомнение на что был дан ответ - структура БД не правильная. Потом искренне не понимая, не смотря на "раз" и "два", я пытался выяснить каков же критерий этой неправильности. Поэтому когда я говорил о PREPARE STATEMENT я пытался уже сдвинуть обсуждение факта неправильной структуры и выудить из своих собеседников критерий этой неправильности. Например, почему яблоко незрелое? Оно незрелое не потому что оно незрелое, а потому что зелёное и кислое. Яблоко не БД, но ведь словесно то можно обосновать своё мнение? К концу третьей страницы темы я получил вариант БД, за что премного благодарен. Ошибусь наверное не намного, но алгоритм при проектировании БД такой же как у скульптора. На каждую категорию автоматизируемого процесса заводится по одной таблице с соответствующими связями. Затем последовательно "отсекаем" все лишнее, имея в виду всю совокупность планируемых запросов. Моя работа, кстати уже готова, и функционирует как ожидалось. Полагаю, что это пока пробный вариант. Когда пойму требуемый функционал буду делать окончательно. Но это не отменяет пользы от нашего общения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 19:37 |
|
||
|
Как имя таблицы в запросе выразить переменной?
|
|||
|---|---|---|---|
|
#18+
fedushok, вот. вы добились результата, это главное. А по поводу басни - в каждом топике такое... каждый смотрит со свей колокольни. авторПоэтому когда я говорил о PREPARE STATEMENT я пытался уже сдвинуть обсуждение факта неправильной структуры и выудить из своих собеседников критерий этой неправильности. фактом является то, что при появлении нового зала вам потребуется создавать новую таблицу, - > запросы динамические, сложнейшие порой невозможные запросы по всем таблицам "размноженной сущности". Иногда полезно приложить к другой отрасли, допустим под овощи - фрукты заводим одну таблицу, а не таблицу овощей и табл фруктов. Вот и все что было... Я честно говоря, думал вы дольше будете с Вебкой заниматься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2016, 20:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1832225]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
208ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
104ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 597ms |

| 0 / 0 |
