Я хочу сделать систему реляционных баз данных для локального компьютерного оборудования некоммерческой. Есть две взаимосвязанные функции, которые я хочу выяснить, как реализовать. Во-первых, нам нужно управлять запасами деталей, а во-вторых, мы должны отслеживать пожертвования компьютерных систем по мере их поступления в нас, а также по мере их выдачи.
Во-первых, у нас есть простой инвентарь деталей. Нам не нужно отслеживать отдельные части (во всяком случае, мы не можем), поэтому я хочу смоделировать счет. Моя мысль состоит в том, чтобы иметь разные «корзины» для деталей, которые имеют простой подсчет. Поэтому, если мы переместим видеокарту из корзины «инвентарь» в корзину, я хочу, чтобы «-1» - инвентарь видеокарты, и «+1» - утилизация видеокарты. Контейнеры могут быть более четко определены по мере необходимости, например, pci-видеокарты, agp-видеокарты и т. Д. Или, если мы посчитаем наш инвентарь, нам может потребоваться сделать -3 из инвентаря и +3 до ' усадка.
Смысл в том, чтобы знать в любое время, сколько, скажем, видеокарт у нас есть, сколько палок ОЗУ и т. Д. Два аспекта бункера - какая часть в нем находится (на любом уровне специфики, такой как «старая разная карта» или «32MB-3.3v-agp-video»), и предназначение корзины, например «пожертвование», «инвентарь», «переработка», «магазин» ',' усадка 'и т. д.
Кроме того, мы хотели бы видеть тенденцию отливов и отливов деталей и исторических данных, поэтому нам необходимо выполнять запросы инвентаризации в любое время.
Так, как я разработал бы стол (ы), чтобы справиться с этим? Я думаю, что это будет что-то вроде книги двойной записи. У меня может быть одна таблица с именем «BinTransactions», где будут from_bin, to_bin и amount. Сумма была бы положительным целым числом, и если я хочу написать запрос, чтобы увидеть, сколько будет вычтено из инвентаря, я бы сделал его отрицательным. Что-то вроде «ВЫБЕРИТЕ СУММУ (количество) * -1 ИЗ BinTransactions ГДЕ from_bin = 'инвентаризация' И time_period = ..."?
Вторая часть этого - сами компьютерные системы. Они поступают как пожертвования в любом состоянии, в котором они находятся. Части могут быть извлечены из них и помещены в инвентарь или переработку; части могут быть извлечены из инвентаря и помещены в компьютеры. Я думаю, я мог бы сделать компьютер
Компьютер наконец-то выходит из нашей системы в качестве гранта, но эта структура имеет один уровень вложенности. Это набор компьютерных частей в компьютере, но есть также монитор, клавиатура, мышь, возможно, динамики. И большой грант может быть несколько систем, в том числе с сетевым оборудованием. Нужно ли «вкладывать» логическую иерархию группировок (части в компьютеры, компьютеры в гранты), или было бы хорошо, если бы каждое пожертвование представляло собой только одну большую группу частей? Если бы это была одна большая группа частей, не обязательно было бы знать, какие части шли с каким компьютером, если бы мы вернули один компьютер из гранта. Также нам хотелось бы узнать из отчетов «34 полных системы были пожертвованы в этом квартале ...»