#mysql
#mysql
Вопрос:
РЕДАКТИРОВАТЬ: чтобы избежать путаницы из-за того, что слово «таблицы» имеет два значения: каждый раз, когда я ссылаюсь на «100 таблиц», я имею в виду 100 физических таблиц в одном бизнесе, доступных для бронирования каждый день.
Я пришел к выводу, что для системы бронирования столов, такой как та, которую я пытаюсь разработать, будет достаточно одной таблицы MySQL с уникальным индексом, состоящим из tableid и date, что означает, что я могу резервировать свои столы в одной таблице и, согласно моему исследованию, хранить по крайней мере 100 лет в будущее без каких-либо проблем с производительностью. Пожалуйста, поправьте меня, если я ошибаюсь.
Далее поясняется: у меня есть набор, скажем, из 100 бронируемых таблиц, чтобы не заканчивались таблицы (для этого проекта мне редко требуется более 30, но вы никогда не знаете). Каждая таблица пронумерована 1-100, а комбинация номера таблицы (tableid) и даты является уникальной записью в базе данных. Т.Е. Вы можете иметь строку таблицы 4 на дату 2014-06-18 только один раз. Это нормально, и я могу просто генерировать 100 строк на каждый день в течение следующих 100 лет, да?
Я использую BIGINT в качестве первичного ключа для каждой строки с автоматическим увеличением, начиная с 1.
Теперь — какое самое простое решение для генерации всех этих строк в MySQL? Каждая строка просто должна иметь INSERT INTO tables (TABLEID,DATE) VALUES ([id],[date])
, поскольку остальные поля заполняются по умолчанию. Даты могут начинаться только с сегодняшнего дня, поскольку этот проект не имеет никакого отношения к прошлому. Я немного погуглил, но не могу понять разницу между сценарием и хранимой процедурой, и объявление переменной для каждого, похоже, отличается и немного смущает меня.
Это должно быть довольно просто, и вопрос также заключается в том, является ли этот подход хорошей практикой или нет.
Спасибо
Комментарии:
1. Это звучит как плохой дизайн БД. Зачем вам нужно 100 таблиц? По одному на каждый год?
2. Вы путаете таблицы с физическими таблицами. У меня есть 100 физических таблиц, доступных для бронирования, хранящихся в одной таблице MySQL.
3. Ah — столы в ресторане. ОК.
4. Например, да. Я обновил вопрос, чтобы избежать путаницы.
5. Обычно вы не будете предварительно заполнять таблицы, что, похоже, является тем, что вы хотите сделать. Просто вставьте запись по требованию.