Database for ERP System
Hej EksperterEr ved at planlægge en database struktur til et ERP system. Meningen er at systemet skal bygges op løbende efter behov. Det jeg mangler nu er styklister, samt et varekartotek.
Min tanke er at lave et komplet database setup før jeg starter, så der ikke skal rettes alt for meget i databasen undervejs.
Mit største problem p.t. er at forklare databasestrukturen, findes det et gratis program der kan dette??
Herunder ses et alpa udkast til databasen, der dog ikke er tilnærmelses vis færdigt. Men det er jo MEGA svært at finde rundt i allerede nu synes jeg!
Måske der er en / flere der kunne komme med input til hvordan en database struktur opbygges "rigtigt"?
-- SQL til MP erp
-- Valuta
CREATE TABLE `curency` (
`curency_id` int(10) NOT NULL default '0',
`name` varchar(10) NOT NULL default '0',
`full_name` varchar(30) NOT NULL default '0',
`active` int(1) NOT NULL default '0',
`primary` int(1) NOT NULL default '0',
`exchange_rate` int(3) NOT NULL default '0',
PRIMARY KEY `curency_id` (`curency_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Sprog
CREATE TABLE `language` (
`language_id` int(10) NOT NULL default '0',
`name` varchar(10) NOT NULL default '0',
`full_name` varchar(30) NOT NULL default '0',
`active` int(1) NOT NULL default '0',
`prioity` int(3) NOT NULL default '0',
PRIMARY KEY `language_id` (`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Brugere
-- Bruger tabellen
CREATE TABLE `users` (
`user_id` int(10) NOT NULL default '0',
`user_name` varchar(10) NOT NULL default '0',
`full_name` varchar(30) NOT NULL default '0',
`email` varchar(30) NOT NULL default '0',
`pass` varchar(10) NOT NULL default '0',
PRIMARY KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Rolle tabellen. Her oprettes nye roller
CREATE TABLE `users_roles` (
`roles_id` int(10) NOT NULL default '0',
`roles_name` varchar(10) NOT NULL default '0',
PRIMARY KEY `roles_id` (`roles_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Link mellem brugere og roller
CREATE TABLE `users_roles_link` (
`roles_id` int(10) NOT NULL default '0',
`user_id` int(10) NOT NULL default '0',
PRIMARY KEY `roles_link_id` (`roles_link_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Administrere bruger rettigheder på forskellige sider
CREATE TABLE `users_roles_access` (
`users_roles_id` int(10) NOT NULL default '0',
`roles_id` int(10) NOT NULL default '0',
`group_name` varchar(20) NOT NULL default '0', -- Området, ex. brugere, Bruges kun til listing!
`area_name` varchar(20) NOT NULL default '0', -- Definere et specifikt område
PRIMARY KEY `users_roles_id` (`users_roles_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Varer
-- Basis vare tabel
CREATE TABLE `stock` (
`stock_id` int(10) NOT NULL default '0',
`item_nr` varchar(20) NOT NULL default '0',
`unit_type` int(3) NOT NULL default '0', -- Enhed Stk. Meter ect.
`weight` decimal(8,4) NOT NULL default '0', -- Enheds vægt i kg.
`x` decimal(10,2) NOT NULL default '0', -- Længde i cm.
`y` decimal(10,2) NOT NULL default '0', -- Bredde i cm.
`z` decimal(10,2) NOT NULL default '0', -- Højde i cm.
`stock_location_id` int(10) NOT NULL default '0', -- Lager lokation tabel.stock_locations
`stock_turnover_id` int(10) NOT NULL default '0', -- Omsætningsgruppe. tabel.stock_turnover_groups
`stock_type_id` int(1) NOT NULL default '0', -- Vare=0 , Stykliste=1 , Ydelse=2
PRIMARY KEY `stock_id` (`stock_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
CREATE TABLE `stock_text` (
`stock_id` int(10) NOT NULL default '0',
`language_id` int(10) NOT NULL default '0',
`direct_search_term` varchar(20) NOT NULL default '0',
`description` varchar(50) NOT NULL default '0',
`sub_description` varchar(50) NOT NULL default '0',
`long_description` text() NOT NULL default '0',
KEY `stock_id` (`stock_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Omsætnings gruppe
CREATE TABLE `stock_turnover_group` (
`stock_turnover_id` int(10) NOT NULL default '0',
`language_id` int(10) NOT NULL default '0',
`group_name` varchar(20) NOT NULL default '0',
KEY `stock_turnover_id` (`stock_turnover_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Lager lokation
CREATE TABLE `stock_locations` (
`stock_location_id` int(10) NOT NULL default '0', -- ID
`language_id` int(10) NOT NULL default '0',
`stock_location_name` varchar(20) NOT NULL default '0', -- Område ex. adresse, hal mm.
`stock_location_number` varchar(20) NOT NULL default '0', -- Nr. ex. hyldenr.
KEY `stock_location_id` (`stock_location_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Varegrupper - Her oprettes alle varegrupper, en vare kan sagtens være med i flere varegrupper
CREATE TABLE `stock_groups` (
`stock_groups_id` int(10) NOT NULL default '0', -- ID
`language_id` int(10) NOT NULL default '0',
`stock_groups_name` varchar(20) NOT NULL default '0', -- Område ex. adresse, hal mm.
KEY `stock_groups_id` (`stock_groups_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Linket mellem varenr og varegrupper
CREATE TABLE `stock_groups_link` (
`stock_groups_id` int(10) NOT NULL default '0', -- ID
`stock_id` int(10) NOT NULL default '0', -- Stock ID'et bruges, da det ALDRIG vil blive �ndret!
KEY `stock_groups_id` (`stock_groups_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Prisgrupper
CREATE TABLE `price_groups` (
`price_group_id` int(10) NOT NULL default '0', -- ID
`price_group_name` varchar(20) NOT NULL default '0', -- Stock ID'et bruges, da det ALDRIG vil blive �ndret!
PRIMARY KEY `price_group_id` (`price_group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Priser + link mellem varer og prisgrupper
CREATE TABLE `prices` (
`stock_id` int(10) NOT NULL default '0',
`price_group_id` int(10) NOT NULL default '0',
`sales_price` decimal(10,2) NOT NULL default '0',
`national_vat` decimal(10,2) NOT NULL default '0', -- 25 % på alt i DK
KEY `stock_id` (`stock_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Rabat regler
CREATE TABLE IF NOT EXISTS `discount` (
`discount_id` int(10) NOT NULL auto_increment,
`discount_stock_area_type` int(2) collate utf8_danish_ci NOT NULL default '', -- vare=0, Varegruppe=1, alle varer=2
`discount_stock_area` int(10) collate utf8_danish_ci NOT NULL default '',
`discount_customer_area_type` int(2) collate utf8_danish_ci NOT NULL default '', -- kunde=0, rabat gruppe=1, alle kunder=2
`discount_customer_area` int(10) collate utf8_danish_ci NOT NULL default '', -- rabatgruppe, kundenr
`discount_turnover_type` int(2) collate utf8_danish_ci NOT NULL default '0', -- enheder=0, omsætning=1,
`discount_turnover` decimal(10,2) collate utf8_danish_ci NOT NULL default '0',
`discount_calc_type` int(2) collate utf8_danish_ci NOT NULL default '0', -- std=0, assorteret=1
`discount_calc` varchar(50) collate utf8_danish_ci NOT NULL default '0', -- Pris beregning ex. [salgs_pris]-40% eller [kost+40%] ect.
UNIQUE KEY `discount_id` (`discount_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Leverandør/Vare link mellem kreditorere og vare
CREATE TABLE `kreditor_item` (
`id` int(10) NOT NULL default '0', -- Unikt ID for varen
`creditor_id` int(10) NOT NULL default '0', -- Kreditor ID
`item_id` int(10) NOT NULL default '0', -- Vare ID
`creditor_item_no` varchar(30) NOT NULL default '0', -- Kreditorens varenr.
`creditor_text` varchar(50) NOT NULL default '0',
`creditor_sub_text` varchar(50) NOT NULL default '0',
`batch_size` int(10) NOT NULL default '0',
`batch_cost` decimal(10,4) NOT NULL default '0',
PRIMARY KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Styklister
CREATE TABLE `part_list` (
`id` int(10) NOT NULL default '0', -- Sørger for at samme vare kan være flere steder på eén stykliste ex. forskellige længder stål
`part_list_id` int(10) NOT NULL default '0', -- ID'et kommer fra det varenr. styklissten tilhører
`stock_id` int(10) NOT NULL default '0', -- Stock ID'et bruges, da det ALDRIG vil blive �ndret!
`quantity` decimal(10,4) NOT NULL default '0',
PRIMARY KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- Kreditorere
-- Kreditor grupper
-- Debitorere
/* CREATE TABLE `customers` (
`customer_id` int(10) NOT NULL default '0', -- Sørger for at samme vare kan være flere steder på eén stykliste ex. forskellige længder stål
`customer_nr` int(10) NOT NULL default '0', -- ID'et kommer fra det varenr. styklissten tilhører
prisgruppe
PRIMARY KEY `customer_id` (`customer_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
*/
-- Kunde grupper
-- Rabat grupper
-- Indkøbsordre
-- Salgsordre
-- Betalingsbetingelser