Hallo liebe Community,
ich habe eine Frage bezüglich meiner Datenbank. Ich habe eine Produktklasse in Java entwickelt, die als Attribut Produkttyp als Enum hat. Dieses Enum hat verschiedene Produkttypen als Attribut und jede Value hat ein eigenes Attribut als Period... also ich habe die Eigenschaft gesetzt, dass jeder Produkttyp eine eigene Haltbarkeit in Form einer Period hat, die natürlich einmalig gesetzt werden kann oder diese als Standardwert gesetzt wird.
Ich denke ich komme deswegen um eine eigene Tabelle (im Bezug auf die erste Normalform) nicht rum, jetzt aber meine Frage: wie speichere ich einerseites diese values in eine Tabelle ab und andererseits wie speichere ich das in der Produkttabelle.
Also ich denke, dass ein Produkt nur einen Produkttypen haben kann...es ist also eine 1:1 Beziehung. Eigentlich ganz simpel nur das Enum an sich macht mir also Probleme..
[CODE lang="java" title="Produkt und seine Eigenschaften"] private static final long serialVersionUID = -5220159028566792859L;
private int productId;
private ProductTyp productTyp;
private String mark;
private String productName;
private int pieces;
private double amount;
private Supplier<LocalDate> freezingDate;
private Supplier<LocalDate> expirationDate;[/CODE]
[CODE lang="java" title="Produkttyp(Enum und seine Eigenschaft)"]import java.time.Period;
/**
* @author Created by Miguel Gutierrez on 11.11.2020
* @since 1.11
*/
public enum ProductTyp {
/**
* a value for every product type. Every type has a period of durability
* The value has a standard period of 4 weeks
* every user can change the period for every product type
*/
VEGETABLES(),BEEF(),PORK(),POULTRY(),CALF(),LAMB(),FRUIT(),ICE(),SAUCES(),MEALS(),OTHER(),PIZZA();
/**
*
* @param period to set the period for storage live time
*/
public void setStorageLiveTime(Period period){
this.storageLiveTimeOfProduct = period;
}
public Period getStorageLiveTimeOfProduct(){
return this.storageLiveTimeOfProduct;
}
private Period storageLiveTimeOfProduct;
/**
*
* @param period set period of the value from user
*/
private ProductTyp(Period period){
this.storageLiveTimeOfProduct= period;
}
private ProductTyp(){
//TODO: message for standard period
storageLiveTimeOfProduct=Period.ofWeeks(4);
}
}[/CODE]
Meine Idee wäre vielleicht mit einer Form eines Indexes irgendwie durch die Produkttypen zu navigieren, also genauer... durch die Values des Enums, aber es entsteht ein Knoten im Kopf, wenn ich mir dabei überlege, ob hier eine id dann notwendig ist(ich denke ja schon, da es sich um eine eigene Tabelle handelt?)
ich habe eine Frage bezüglich meiner Datenbank. Ich habe eine Produktklasse in Java entwickelt, die als Attribut Produkttyp als Enum hat. Dieses Enum hat verschiedene Produkttypen als Attribut und jede Value hat ein eigenes Attribut als Period... also ich habe die Eigenschaft gesetzt, dass jeder Produkttyp eine eigene Haltbarkeit in Form einer Period hat, die natürlich einmalig gesetzt werden kann oder diese als Standardwert gesetzt wird.
Ich denke ich komme deswegen um eine eigene Tabelle (im Bezug auf die erste Normalform) nicht rum, jetzt aber meine Frage: wie speichere ich einerseites diese values in eine Tabelle ab und andererseits wie speichere ich das in der Produkttabelle.
Also ich denke, dass ein Produkt nur einen Produkttypen haben kann...es ist also eine 1:1 Beziehung. Eigentlich ganz simpel nur das Enum an sich macht mir also Probleme..
[CODE lang="java" title="Produkt und seine Eigenschaften"] private static final long serialVersionUID = -5220159028566792859L;
private int productId;
private ProductTyp productTyp;
private String mark;
private String productName;
private int pieces;
private double amount;
private Supplier<LocalDate> freezingDate;
private Supplier<LocalDate> expirationDate;[/CODE]
[CODE lang="java" title="Produkttyp(Enum und seine Eigenschaft)"]import java.time.Period;
/**
* @author Created by Miguel Gutierrez on 11.11.2020
* @since 1.11
*/
public enum ProductTyp {
/**
* a value for every product type. Every type has a period of durability
* The value has a standard period of 4 weeks
* every user can change the period for every product type
*/
VEGETABLES(),BEEF(),PORK(),POULTRY(),CALF(),LAMB(),FRUIT(),ICE(),SAUCES(),MEALS(),OTHER(),PIZZA();
/**
*
* @param period to set the period for storage live time
*/
public void setStorageLiveTime(Period period){
this.storageLiveTimeOfProduct = period;
}
public Period getStorageLiveTimeOfProduct(){
return this.storageLiveTimeOfProduct;
}
private Period storageLiveTimeOfProduct;
/**
*
* @param period set period of the value from user
*/
private ProductTyp(Period period){
this.storageLiveTimeOfProduct= period;
}
private ProductTyp(){
//TODO: message for standard period
storageLiveTimeOfProduct=Period.ofWeeks(4);
}
}[/CODE]
Meine Idee wäre vielleicht mit einer Form eines Indexes irgendwie durch die Produkttypen zu navigieren, also genauer... durch die Values des Enums, aber es entsteht ein Knoten im Kopf, wenn ich mir dabei überlege, ob hier eine id dann notwendig ist(ich denke ja schon, da es sich um eine eigene Tabelle handelt?)