Как осуществить?
Хочу создать допустим 4 таблицы
1) Электротехника
2) Мебель
3) Продукты
4) таблица, в которой ведется запись
Я знаю про то, что можно их объединить иначе, но я хочу сделать так, чтобы у первых 3х таблиц ID различались и соответствовали ID общей таблицы, в котором допустим будет строка с датой добавления, по которой затем можно отсортировать добавленные предметы
SQL
Вопрос по БД
а в чём вопрос-то?
единственный нормальный вариант: четвёртая таблица имеет три разные колонки, ссылающиеся на три таблицы:
id, timestamp, electro_id, mebel_id, product_id
единственный нормальный вариант: четвёртая таблица имеет три разные колонки, ссылающиеся на три таблицы:
id, timestamp, electro_id, mebel_id, product_id
Не надо ничего "допускать". Надо почитать что-нибудь умное по БД и научиться определять, что такое сущность, и что такое свойство. И про бритву Оккама заодно. Так вот, твои Электротехника, Мебель, Продукты - это свойства сущности ТОВАР. Поэтому создавай таблицу товаров и не плоди сущности сверх нужного.
Сразу хочу сказать, что при проектировании БД слово допустим очень опасное.
В предыдущем ответе вам уже написали, что можно создать таблицу вроде.
id, timestamp, electro_id, mebel_id, product_id
Вот здесь оказывается куча проблема. Как понять какой товар относится к мебели, а какой к электрике. Наверное смотреть какое из полей electro_id или mebel_id не равно нулю? Это жутко неудобно. А что делать, если вдруг оба значения окажутся не равными нулю?
Простейшее решение состоит в том, чтобы хранить все в одной таблице следующего формат
id, datetime, product_type, name и т. д.
В поле product_type храним следующие значения 1-электрика 2-мебель 3-продукты.
К такой таблице можно построить много полезных запросов, например можно выбрать все поступления товаров на заданный период времени, а можно посмотреть историю поступления для данного типа товаров. Полезно и то, что если понадобится новый тип товаров, то мы ему присваиваем новый код (например 4-инструменты) и ничего не меняем в структуре таблиц. Удобно, не так ли?
В предыдущем ответе вам уже написали, что можно создать таблицу вроде.
id, timestamp, electro_id, mebel_id, product_id
Вот здесь оказывается куча проблема. Как понять какой товар относится к мебели, а какой к электрике. Наверное смотреть какое из полей electro_id или mebel_id не равно нулю? Это жутко неудобно. А что делать, если вдруг оба значения окажутся не равными нулю?
Простейшее решение состоит в том, чтобы хранить все в одной таблице следующего формат
id, datetime, product_type, name и т. д.
В поле product_type храним следующие значения 1-электрика 2-мебель 3-продукты.
К такой таблице можно построить много полезных запросов, например можно выбрать все поступления товаров на заданный период времени, а можно посмотреть историю поступления для данного типа товаров. Полезно и то, что если понадобится новый тип товаров, то мы ему присваиваем новый код (например 4-инструменты) и ничего не меняем в структуре таблиц. Удобно, не так ли?
Anderson Koreec
Но так же можно сделать и с вариантом выше, просто добавить новою строку `tools_ID`, разве нет?
Конечно остается вопрос с <>0, но все же
Не будет ли общая таблица загроможденной?
Конечно остается вопрос с <>0, но все же
Не будет ли общая таблица загроможденной?
хорошую базу можно сделать в АКСЕССЕ
Я так понимаю, задача - 3 таблицы со сквозными уникальными идентификаторами. Здесь единственный вариант - создавать сначала новую запись в табл. 4, а потом - запись с тем же ID в нужной тематической.
Хотя подход достаточно странный...
Хотя подход достаточно странный...
Похожие вопросы
- Выполнение вложенного запроса в БД. Скалярные запросы.
- Как реализовать архитектуру БД?
- Инфологическая модель БД
- Помогите Зелёному! Как наладить проверку БД на полноту новых записей
- Принцип БД для поиска из 3 млрд строк.
- Блин что то не могу найти способ произвести эффективную выборку данных из таблицы БД?
- Вывод данных из бд в dataview?
- Как в бд сверять прошло ли определённое время (К примеру 24ч.) после указаной даты в базе?
- Как хостинг с бд взять? с удобным дизайном?
- Нестандартное извлечение данных из БД
ну да, что то уже совсем задумался)
спасибо