Hi ich hab hier ne Tabelle aus einem shopsytem. Ich frag mich ob die tabelle nicht sehr *scheisse* ist, weil sehr viele felder bei der bestellung leer gelassen werden können. Ausserdem les ich überall was von Redundanz und den 3 Normalformen einer DB und wenn ich mir dann die Tabellen von bekannten Shopsystemen angucke ist da nix von 3-Normalformen-Muster-Tabellen, sondern genau das Gegenteil. Also diese Tabelle is doch voll redundant oder irre ich mich da? Man könnte lieferadresse, rechnungsadresse etc auslagern oder net. Wär das sinnvoll, besser? Ich bin nur grad voll verwirr. Ich plane ein Datenbankmodell zu machen, les mich durch Tutorials wie man sowas am besten macht und in der Praxis dann , wenn man sich ein Live-Bespiel ansehen möchte kommen da sone Tabellen bei raus....
CREATE TABLE customer_order (
id int(10) NOT NULL auto_increment,
adress_id int(10) NOT NULL default '0',
order_id varchar(22) NOT NULL default '',
currency_iso char(3) NOT NULL default '',
currency_key char(3) NOT NULL default '',
currency_rate decimal(15,4) NOT NULL default '0.0000',
bank_name varchar(100) NOT NULL default '',
bank_owner varchar(150) NOT NULL default '',
bank_account varchar(20) NOT NULL default '',
bank_number varchar(20) NOT NULL default '',
cc_owner varchar(100) NOT NULL default '',
cc_institute varchar(20) NOT NULL default '',
cc_number varchar(30) NOT NULL default '',
cc_valid varchar(4) NOT NULL default '',
cc_check varchar(5) NOT NULL default '',
cc_phone varchar(30) NOT NULL default '',
cc_street varchar(100) NOT NULL default '',
cc_zip varchar(10) NOT NULL default '',
cc_city varchar(60) NOT NULL default '',
cc_mail varchar(60) NOT NULL default '',
payment_method char(3) NOT NULL default '',
payment_costs decimal(12,2) NOT NULL default '0.00',
payment_tax decimal(12,2) NOT NULL default '0.00',
shipping_costs decimal(12,2) NOT NULL default '0.00',
shipping_tax decimal(12,2) NOT NULL default '0.00',
desire_date date NOT NULL default '0000-00-00',
voucher_number varchar(15) NOT NULL default '',
voucher_percent decimal(5,2) NOT NULL default '0.00',
voucher_amount decimal(12,2) NOT NULL default '0.00',
voucher_expirationdate date NOT NULL default '0000-00-00',
memo text NOT NULL,
feedback text NOT NULL,
rating tinyint(1) NOT NULL default '0',
order_status enum('N','W','C','D','R','P','IN') NOT NULL default 'N',
finished enum('Y','N') NOT NULL default 'N',
incomplete enum('Y','N') NOT NULL default 'Y',
modus varchar(5) NOT NULL default '',
order_date date NOT NULL default '0000-00-00',
order_time time NOT NULL default '00:00:00',
discount_type char(1) NOT NULL default '',
discount decimal(12,2) NOT NULL default '0.00',
discount_per char(1) NOT NULL default '',
discount_finished decimal(12,2) NOT NULL default '0.00',
notification text NOT NULL,
free_1 varchar(100) NOT NULL default '',
free_2 varchar(100) NOT NULL default '',
free_3 varchar(100) NOT NULL default '',
free_4 varchar(100) NOT NULL default '',
free_5 varchar(100) NOT NULL default '',
free_6 varchar(100) NOT NULL default '',
sid varchar(50) NOT NULL default '',
ip varchar(20) NOT NULL default '',
pdf_bill varchar(19) NOT NULL default '',
KEY id (id,adress_id,order_id),
KEY incomplete (incomplete)
)
id int(10) NOT NULL auto_increment,
adress_id int(10) NOT NULL default '0',
order_id varchar(22) NOT NULL default '',
currency_iso char(3) NOT NULL default '',
currency_key char(3) NOT NULL default '',
currency_rate decimal(15,4) NOT NULL default '0.0000',
bank_name varchar(100) NOT NULL default '',
bank_owner varchar(150) NOT NULL default '',
bank_account varchar(20) NOT NULL default '',
bank_number varchar(20) NOT NULL default '',
cc_owner varchar(100) NOT NULL default '',
cc_institute varchar(20) NOT NULL default '',
cc_number varchar(30) NOT NULL default '',
cc_valid varchar(4) NOT NULL default '',
cc_check varchar(5) NOT NULL default '',
cc_phone varchar(30) NOT NULL default '',
cc_street varchar(100) NOT NULL default '',
cc_zip varchar(10) NOT NULL default '',
cc_city varchar(60) NOT NULL default '',
cc_mail varchar(60) NOT NULL default '',
payment_method char(3) NOT NULL default '',
payment_costs decimal(12,2) NOT NULL default '0.00',
payment_tax decimal(12,2) NOT NULL default '0.00',
shipping_costs decimal(12,2) NOT NULL default '0.00',
shipping_tax decimal(12,2) NOT NULL default '0.00',
desire_date date NOT NULL default '0000-00-00',
voucher_number varchar(15) NOT NULL default '',
voucher_percent decimal(5,2) NOT NULL default '0.00',
voucher_amount decimal(12,2) NOT NULL default '0.00',
voucher_expirationdate date NOT NULL default '0000-00-00',
memo text NOT NULL,
feedback text NOT NULL,
rating tinyint(1) NOT NULL default '0',
order_status enum('N','W','C','D','R','P','IN') NOT NULL default 'N',
finished enum('Y','N') NOT NULL default 'N',
incomplete enum('Y','N') NOT NULL default 'Y',
modus varchar(5) NOT NULL default '',
order_date date NOT NULL default '0000-00-00',
order_time time NOT NULL default '00:00:00',
discount_type char(1) NOT NULL default '',
discount decimal(12,2) NOT NULL default '0.00',
discount_per char(1) NOT NULL default '',
discount_finished decimal(12,2) NOT NULL default '0.00',
notification text NOT NULL,
free_1 varchar(100) NOT NULL default '',
free_2 varchar(100) NOT NULL default '',
free_3 varchar(100) NOT NULL default '',
free_4 varchar(100) NOT NULL default '',
free_5 varchar(100) NOT NULL default '',
free_6 varchar(100) NOT NULL default '',
sid varchar(50) NOT NULL default '',
ip varchar(20) NOT NULL default '',
pdf_bill varchar(19) NOT NULL default '',
KEY id (id,adress_id,order_id),
KEY incomplete (incomplete)
)
Kommentar