Komponent stok takip sistemi için veritabanı tasarımı

Aslında yazılım tamamen sıfır kategori ile gelse de olur. Ben bomist kullanıyorum, orada adam bir kategori hiyerarşisi tanımlamış ama bana kullanışlı gelmedi. Sildim ve yeniden kategoriler oluşturdum. Çok kafa yormamak için de herşeyi çok genel tuttum.

Bomist'te bir sürü ilave özellik ve bürokrasi var. Mesela komponenti girerken adedi yanlış girdin. Gidip adedi düzeltemiyorsun. Onun yerine "stok eklemen" gerekiyor. 1000 yerine 100 tane 1N4007 var yazmışım. Sonra da 900 tane stok ekliyorum, sanki iki ayrı partide satın aldım malı
:)

Başlangıç için üç tane elzem özellik var bu program için:

1) Veri girişi formu
2) Veri listeleme. Kriterlere göre filtreleme. İlk başta doğrudan SQL sorgu bile uygundur, özel form yapmaya bile gerek yok.
3) Veri düzenleme

Bundan sonda da şu özellikler mesela eklenebilir:
1) İşlem kaydı. Hangi tarihte ne yapıldı?
2) Barkod okuma
 
  • Beğen
Reactions: nt
Kullanıcı olayına bile gerek yok bence. Form sayfası iyi duruyor.

Kategori ve saklama yeri ekleme için bir treeview kullanılabilir.

1701939371609.png


Ama çok hızlı veri girişi açısında doğrudan dizin yapısı kullanmak çok daha iyi olur. Yani mesela yeni komponent giriyorum, gidip işte komponent - yarı iletken - transistör - MOSFET diye treeview'da tıklayıp duracağıma aşağıdaki gibi bir path gireceğim

Kod:
komponent/yarı iletken/transistör/MOSFET
 
videonun 3. yada 4..sanıyesınde yeni parca ekleye tıklıyorum ama videoda çıkmadı mouse (şekli düzeltilir css ile html ile)

kullanıcı olmazsa olmaz diğer şekilde tek kiişi kullanabilir ancak öyle olursa her kullanıcının özel sunucuya ihtiyacı olur öyle de yaparız

setup.html ekliyim orda çıkartma silme düzenleme yaparız. popupları yapabilsem tek sayfada bitircektim bomist gibi bi webci yok aramızda :D

önemli sorum:

kategori sadece komponent mi yoksa komponent transistör mosfetmi bunu anlıyamadım yani bana bunları anlatan bir çıktı gibi birşey verirsen abi

@Sercan abinin ön çalışma resminden baktım bunların ismine :D

category ve subcategory iki tuşa yada 4 -5 tuşa bölebilirim tıklayıp seçeriz ama bunların ne kadar olması gerektiğini anlamış değilim sanırım

istediğimiz kadar category ve subcategory admin panelinden ekliyebiliyoruz bunlarda direkt db işleniyor resim ve teknik dökümanıda mediaroot yapıcaz

geriyede pek bişey kalmadı zaten geliştirmeleri zaman içinde ekleriz
 
Kategori bir hiyerarşik sıralama. Bütün bileşenler kategoriye dahil. Sadece MOSFET değil, onun üstündekiler de dahil. Böylece istenen çözünürlükte filtreleme yapabileceğiz.

Mesela şu kategoriyi düşün.

komponent/yarı iletken/transistör/MOSFET

Burada ben istersem bütün elektronik komponentleri listeleyebiliim (komponent seçerek), bütün yarıiletkenleri listeleyebilirim (komponent/yarı iletken seçerek) veya bütün transistörleri listeleyebilirim (komponent/yarı iletken/transistör seçerek)
 
Al sana bomist den örnek. Burada kategoriye "label" demiş.

1701941922869.png
 
  • Beğen
Reactions: nt
bizim kategorimiz sensör, test ekipmanı, tranistör, dirençde bunlar dan biri olabilir bazılarının alt kategorileri var bazılarının yok sanırım doğru anladım :) senide uğraştıryorum abi hakkını helal et :D
 
bizim kategorimiz sensör, test ekipmanı, tranistör, dirençde bunlar dan biri olabilir bazılarının alt kategorileri var bazılarının yok sanırım doğru anladım :) senide uğraştıryorum abi hakkını helal et :D

Aslında daha da uğraşmam lazım. bomist %100 zam yaptı Maker planına. Türkiye'de Avro fırladı birader, aynı fiyattan devam edeyim dedim. Tek cümle, olmaz dedi gitti :mad:
 
abi googledan da baktım :D :D :D
ben komponenti bir parçanın ismi sanıyordum şu ana kadar.
ben kodlamaya geçiyim en iyisi :D

3911.jpg
 
@taydin abi ben kategori yapıp alt kategoride yapıyım

.org/admin den giriş yapıp "Categories" bölümünde ayarlamaları sen yaparsın diğer türlü bu işin içinden çıkamıyorum :)

kategori ve alt kategorileri ekleyebilir, düzenleyebilir ve silebilirsin

"Yarıiletken" adında bir kategori ekleyebilir ve bu kategoriye bağlı olarak "Transistör" ve "MOSFET" adında alt kategoriler oluşturabilirsin

hiyerarşik kategori yapısını bu şekilde elde ederiz.

bize Category ve Subcategory yetiyormu yoksa daha fazlamı lazım :D
 
@taydin abi ben kategori yapıp alt kategoride yapıyım

.org/admin den giriş yapıp "Categories" bölümünde ayarlamaları sen yaparsın diğer türlü bu işin içinden çıkamıyorum :)

kategori ve alt kategorileri ekleyebilir, düzenleyebilir ve silebilirsin

"Yarıiletken" adında bir kategori ekleyebilir ve bu kategoriye bağlı olarak "Transistör" ve "MOSFET" adında alt kategoriler oluşturabilirsin

hiyerarşik kategori yapısını bu şekilde elde ederiz.

bize Category ve Subcategory yetiyormu yoksa daha fazlamı lazım :D

Eğer benim database tasarımını kullanırsan (ilk mesaj), herşey zaten destekleniyor :tamam2: (tabi teoride, kod yazıp database içine daha bir byte veri koymadım)
 
  • Beğen
Reactions: nt
InvenTree'ye baktiniz mi hic? Bir de HomeBox var.





Ben baktım.


Bir sürü bilmediğim, anlamadığım bileşen var. 500 tane komponent girip ondan sonra bozulunca bütün verilerin çöpe gitme riski var. O yüzden kaynak kodunu bizim yazdığımız birşey olması çok iyi olacak.
 
@taydin abi tamamdır herşey oturdu şimdi
zaten burda tüm detaylar yazıyor
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="inventory" id="Project-e5" database="PostgreSQL" >
    <comment><![CDATA[Electronics component inventory database]]></comment>
    <schema name="public" >
        <comment><![CDATA[standard public schema]]></comment>
        <table name="categories" generator_rows="100" generator_order="0" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <column name="description" type="varchar" length="500" jt="12" />
            <column name="parent_id" type="integer" jt="4" />
            <index name="pk_categories" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <table name="component_document_links" generator_rows="337" generator_order="10" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="document_id" type="integer" jt="4" mandatory="y" />
            <column name="component_id" type="integer" jt="4" mandatory="y" />
            <index name="pk_component_document_links" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
            <fk name="fk_component_document_links_documents" to_schema="public" to_table="documents" >
                <fk_column name="document_id" pk="id" />
            </fk>
            <fk name="fk_component_document_links_components" to_schema="public" to_table="components" >
                <fk_column name="component_id" pk="id" />
            </fk>
        </table>
        <table name="components" generator_rows="225" generator_order="9" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="model" prior="part_number" type="varchar" length="100" jt="12" mandatory="y" />
            <column name="description" type="varchar" length="500" jt="12" />
            <column name="manufacturer_id" prior="manufacturer" type="integer" jt="4" />
            <column name="category_id" type="integer" jt="4" />
            <column name="package_id" type="integer" jt="4" />
            <column name="location_id" type="integer" jt="4" />
            <column name="stock" type="integer" jt="4" >
                <defo><![CDATA[0]]></defo>
            </column>
            <index name="pk_components" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
            <index name="idx_components" unique="NORMAL" >
                <column name="model" />
            </index>
            <fk name="fk_components_locations" to_schema="public" to_table="locations" >
                <fk_column name="location_id" pk="id" />
            </fk>
            <fk name="fk_components_categories" to_schema="public" to_table="categories" >
                <fk_column name="category_id" pk="id" />
            </fk>
            <fk name="fk_components_packages" to_schema="public" to_table="packages" >
                <fk_column name="package_id" pk="id" />
            </fk>
            <fk name="fk_components_manufacturers" to_schema="public" to_table="manufacturers" >
                <fk_column name="manufacturer_id" pk="id" />
            </fk>
        </table>
        <table name="document_types" prior="data_types" generator_rows="100" generator_order="1" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <index name="pk_data_types" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <table name="documents" generator_rows="150" generator_order="2" >
            <column name="id" type="serial" jt="4" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <column name="description" type="varchar" length="500" jt="12" />
            <column name="document_type_id" type="integer" jt="4" mandatory="y" />
            <column name="document_path" prior="document" type="varchar" length="500" jt="12" mandatory="y" />
            <index name="unq_documents_id" unique="UNIQUE_KEY" >
                <column name="id" />
            </index>
            <fk name="fk_documents_document_types" to_schema="public" to_table="document_types" >
                <fk_column name="document_type_id" pk="id" />
            </fk>
        </table>
        <table name="location_types" generator_rows="100" generator_order="4" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <index name="pk_location_types" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <table name="locations" generator_rows="150" generator_order="5" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <column name="location_type_id" type="integer" jt="4" mandatory="y" />
            <column name="parent_id" type="integer" length="10" decimal="0" jt="4" />
            <index name="pk_locations" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
            <fk name="fk_locations_location_types" to_schema="public" to_table="location_types" >
                <fk_column name="location_type_id" pk="id" />
            </fk>
        </table>
        <table name="manufacturers" generator_rows="100" generator_order="6" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <index name="pk_manufacturers" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <table name="packages" generator_rows="100" generator_order="7" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <index name="pk_packages" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <table name="purchase_details" generator_rows="337" generator_order="11" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="purchase_id" prior="purchases_id" type="integer" jt="4" mandatory="y" />
            <column name="component_id" prior="components_id" type="integer" jt="4" mandatory="y" />
            <column name="quantity" type="integer" jt="4" mandatory="y" />
            <column name="cost" type="numeric" jt="2" />
            <column name="total_cost" type="numeric" jt="2" />
            <index name="pk_purchase_details" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
            <fk name="fk_purchase_details_purchases" to_schema="public" to_table="purchases" >
                <fk_column name="purchase_id" pk="id" />
            </fk>
            <fk name="fk_purchase_details_components" to_schema="public" to_table="components" >
                <fk_column name="component_id" pk="id" />
            </fk>
        </table>
        <table name="purchases" generator_rows="150" generator_order="3" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="date" type="date" jt="91" mandatory="y" />
            <column name="supplier_id" type="integer" jt="4" mandatory="y" />
            <index name="pk_purchases" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
            <fk name="fk_purchases_suppliers" to_schema="public" to_table="suppliers" >
                <fk_column name="supplier_id" pk="id" />
            </fk>
        </table>
        <table name="suppliers" generator_rows="100" generator_order="8" >
            <column name="id" type="serial" jt="4" mandatory="y" />
            <column name="name" type="varchar" length="100" jt="12" mandatory="y" />
            <index name="pk_suppliers" unique="PRIMARY_KEY" >
                <column name="id" />
            </index>
        </table>
        <sequence name="data_types_id_seq" options="START WITH 1 INCREMENT BY 1" />
    </schema>
    <connector name="PostgreSQL" database="PostgreSQL" driver_class="org.postgresql.Driver" driver_jar="postgresql-42.5.3.jar" driver_desc="Standard" host="localhost" port="5432" instance="inventory" user="admin" passwd="UWUzNEZpdWFX" useSystemProxy="false" />
    <layout name="Layout" id="Layout-bf3" joined_routing="y" show_column_type="y" show_schema_name="y" show_relation="columns" >
        <entity schema="public" name="categories" color="3986C1" x="1216" y="160" />
        <entity schema="public" name="component_document_links" color="3986C1" x="368" y="64" />
        <entity schema="public" name="components" color="3986C1" x="768" y="96" />
        <entity schema="public" name="document_types" color="3986C1" x="48" y="240" />
        <entity schema="public" name="documents" color="3986C1" x="48" y="80" />
        <entity schema="public" name="location_types" color="3986C1" x="1184" y="528" />
        <entity schema="public" name="locations" color="3986C1" x="1168" y="384" />
        <entity schema="public" name="manufacturers" color="3986C1" x="1216" y="48" />
        <entity schema="public" name="packages" color="3986C1" x="1232" y="288" />
        <entity schema="public" name="purchase_details" color="3986C1" x="768" y="304" />
        <entity schema="public" name="purchases" color="3986C1" x="800" y="480" />
        <entity schema="public" name="suppliers" color="3986C1" x="800" y="592" />
        <script name="SQL_Editor" id="Editor-bfe" language="SQL" >
            <string><![CDATA[select * from location_types;]]></string>
        </script>
    </layout>
</project>
 
Son düzenleme:
benim yaptığımın senin yazdığınla aklası yokmuş 1-2 güne görüşürüz :D
 
Peki, nasıl çalıştıracağız bu uygulamayı?
Django yüklü...
 
  • Beğen
Reactions: nt
benim bir fikrim de var.
forum sunucusuna entegre çalışsa.
Benim halka açık bir depom olsa mesela o depoya kullanma ihtimalim az olan mcu modül entegreleri eklesem ihtiyacı olan görüp "ahmette varmış, kullanmıyormuş ahmetten isteyeyim" dese birbirimize yardımımız dokunur.
Merhaba tamda buna göre bişey aklıma geldi ve konusunu açtım.inceleyebilirsiniz.

 

Forum istatistikleri

Konular
6,953
Mesajlar
118,779
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top