Formatowanie Pola

Użytkowanie programu bazodanowego

Formatowanie Pola

Postprzez Sillve » Śr paź 21, 2009 12:48 am

Witam,
zwracam sie do was z zapytaniem, jaki jest odpowiedni kod formatu, jeśli chcę aby w okreslonym polu, osoba mogła wpisywać nieokreslona ilosc liczb po przecinku. NP:
1,2,4,2,4

z gory dziekuje za pomoc
OpenOffice 3.1 na Windows XP
Sillve
 
Posty: 3
Dołączył(a): Śr paź 21, 2009 12:45 am

Re: Formatowanie Pola

Postprzez Jan_J » Cz paź 22, 2009 12:48 pm

Takie wymaganie to nie format, tylko ograniczenie zawartości (zwane w bazach danych więzami integralności).
W zarządzaniu bazą na poziomie języka SQL takie ograniczenia zadaje się albo przy okazji polecenia CREATE TABLE za pomocą klauzuli CHECK,
albo w dowolnym późniejszym momencie za pomocą klauzuli ADD CONSTRAINT, albo za pomocą wyzwalaczy, o ile baza je obsługuje.

Twoje wymaganie stwierdza: liczba po czym dowolną ilość razy (,liczba), co tłumaczy się na wyrażenie regularne '^[0-9]+(,[0-9]+)*$'
Obsługa wyrażeń regularnych nie jest standardem w SQL-u, choć w niektórych bazach istnieje. Bez niej liczyłbym na samodzielnie napisaną funkcję sprawdzającą, bo samym standardowym LIKE tego nie sprawdzisz.

A jak to zrobić za pomocą formatu w Base? pewien nie jestem, ale sądzę, że się nie da. Nie do tego służy format.
Raczej użyłbym ADD CONSTRAINT w interfejsie SQL (Narzędzia/SQL) -- ale HSQLDB wbudowany w Base'a nie ma wyrażeń regularnych. Pozostaje życzyć sobie, by pole składało się wyłącznie z cyfr i przecinków. To się da wyrazić w klauzuli CONSTRAINT, choć niezbyt efektywnie.

PS. Czy nie chodzi Ci przypadkiem o ominięcie normalizacji tabeli? czy nie chcesz mieć
klucz wartość 0,1,2,5,12
zamiast
klucz wartość
i w innej tabeli
klucz 0
klucz 1
klucz 2
klucz 5
klucz 12
JJ
LO Still (6.2) ∙ AOO 4.1.7 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3975
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Formatowanie Pola

Postprzez Sillve » Śr paź 28, 2009 1:03 am

Juz sobie z tym poradziłem, jestem w szkole sredniej i miałem zadanie od nauczyciela stworzyc dziennik lekcyjny jako bazę danych i poprostu zmieniłem z typu pola liczbowego na tekst, przy sprawdzaniu i tak nie zwrocil na to uwagi.

Dzięki za pomoc, na pewno sie przyda. ;)

pozdrawiam
OpenOffice 3.1 na Windows XP
Sillve
 
Posty: 3
Dołączył(a): Śr paź 21, 2009 12:45 am

Re: Formatowanie Pola

Postprzez Jan_J » Śr paź 28, 2009 11:05 am

Przyda się, przyda. Podejrzewałem, że idziesz ,,na skróty''.

W dzienniku zrobiłbym co najmniej 3 tabele:
uczniowie: (numer ucznia, imie, nazwisko)
przedmioty: (numer przedmiotu, przedmiot)
oceny: (numer oceny, numer ucznia, numer przedmiotu, data, ocena, za co)

ocena byłaby ... hm ... liczbowa od 1 do 6, a jeszcze lepiej -- odwołaniem do osobnej tabeli z katalogiem obowiązujących ocen.

,,W realu'' byłaby potrzeba dalszej komplikacji takiej bazy.
JJ
LO Still (6.2) ∙ AOO 4.1.7 ∙ Python (3.7|2.7) ∙ Unicode 12 ∙ LATEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Fedora|CentOS|SUSE)
Jan_J
 
Posty: 3975
Dołączył(a): Pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław


Powrót do Base

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość