SQL

Вопрос по БД

Как осуществить?
Хочу создать допустим 4 таблицы
1) Электротехника
2) Мебель
3) Продукты
4) таблица, в которой ведется запись

Я знаю про то, что можно их объединить иначе, но я хочу сделать так, чтобы у первых 3х таблиц ID различались и соответствовали ID общей таблицы, в котором допустим будет строка с датой добавления, по которой затем можно отсортировать добавленные предметы
Anderson Koreec
Anderson Koreec
338
а в чём вопрос-то?
единственный нормальный вариант: четвёртая таблица имеет три разные колонки, ссылающиеся на три таблицы:
id, timestamp, electro_id, mebel_id, product_id
Сергей Квашнин
Сергей Квашнин
36 571
Лучший ответ
Anderson Koreec хмм
ну да, что то уже совсем задумался)
спасибо
Не надо ничего "допускать". Надо почитать что-нибудь умное по БД и научиться определять, что такое сущность, и что такое свойство. И про бритву Оккама заодно. Так вот, твои Электротехника, Мебель, Продукты - это свойства сущности ТОВАР. Поэтому создавай таблицу товаров и не плоди сущности сверх нужного.
DJ
D. J.
82 757
Сразу хочу сказать, что при проектировании БД слово допустим очень опасное.

В предыдущем ответе вам уже написали, что можно создать таблицу вроде.
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, но все же
Не будет ли общая таблица загроможденной?
хорошую базу можно сделать в АКСЕССЕ
ЮК
Юрий Ковязин
95 951
Я так понимаю, задача - 3 таблицы со сквозными уникальными идентификаторами. Здесь единственный вариант - создавать сначала новую запись в табл. 4, а потом - запись с тем же ID в нужной тематической.
Хотя подход достаточно странный...
Murad Yagubov
Murad Yagubov
1 460