Ad esempio,
greater or equal to 50 and smaller than 100 (>=50 && < 100)
smaller than 10 or greater than 40 (<10 || >40)
Ho pensato a come rappresentare l'intervallo matematico in un file e in un database, l'intervallo potrebbe essere inserito da non programmatore e ho bisogno di mantenere l'input semplice, ma su un altro lato, è anche necessario mantenere l'input facile per converti in dati e facile controllare l'input degli errori ad es .: <10 || >100
sembra il più semplice ma è più difficile per me analizzare la stringa per ottenere i dati, inoltre devi considerare l'errore di formato di input
Ho considerato alcuni metodi di input, utilizzando > = 50 & & < 100 come esempio, che si trova in forma di valore chiave:
-
Usando una stringa per rappresentare l'intero intervallo:
<rangeInString>=50 && < 100</rangeInString>
-
Separa due stringhe, una rappresenta il limite inferiore e un'altra rappresenta il limite superiore, quindi analizza ogni stringa nel programma:
<lowerBound> >=50 </lowerBound> <upperBound> <100 </upperBound>
-
Separa il limite inferiore e superiore, separa anche il segno dal numero:
<lowerBound> <sign> >= </sign> <data>50</data> </lowerBound> <upperBound> <sign> < </sign> <data>100</data> </upperBound>
-
Separa il limite inferiore e il limite superiore, anche il segno separato e separa anche il caso che, se include le condizioni uguali:
<lowerBound> <sign> > </sign> <isIncludeEqual>true</isIncludeEqual> <data>50</data> </lowerBound> <upperBound> <sign> < </sign> <isIncludeEqual>false</isIncludeEqual> <data>100</data> </upperBound>
-
rilevamento automatico utilizzando
&&
o||
, ad es. : > = A con < B, se A < B, deve essere&&
ad es. (>= 50 && <100
), altrimenti è||
ad es. (>= 100 || <50
):<A> <sign> > </sign> <isIncludeEqual>true</isIncludeEqual> <data>50</data> </A> <B> <sign> < </sign> <isIncludeEqual>false</isIncludeEqual> <data>100</data> </B>
-
Utilizza un campo "isAnd" per separare > = 50 & & < 100 (vero) e < = 50 || > 100 (falso) anziché utilizzare il segno di campo "<" e ">" :
<lowerBound> <isIncludeEqual>true</isIncludeEqual> <data>50</data> </lowerBound> <upperBound> <isIncludeEqual>false</isIncludeEqual> <data>100</data> </upperBound> <isAnd>true</isAnd>
-
altro modello di dati ...
Ho bisogno di prendere in considerazione qualcosa:
-
facile per i non programmatori inserire
-
facile da convertire o analizzare i dati nel programma
-
facile controllare l'errore, ad esempio, analizzare la stringa aumentare la complessità della conversione dei dati e controllare il formato errato, inoltre potrebbe esserci un altro formato errato, ad es .:
<=50 && >100
non dovrebbe essere valido, potrei consentire il rilevamento automatico utilizzando&&
o||
dal segno di input, ma può aumentare la complessità del codice