Wymagania dot. modelu danych dla ogłoszeń

  • [OK] Podział na kategorie
  • [OK] Każda kategoria posiada specyficzne parametry opisujące ogłoszenie należące do tej kategorii
  • [OK] Dynamiczny podstawowy formularz wyszukiwania dla każdej kategorii z jej podstawowymi parametrami
  • [OK] Dynamiczny zaawansowany formularz wyszukiwania dla każdej kategorii z jej wszystkimi parametrami
  • [OK] Zarządzanie parametrami - dodawanie, wyłączanie (dezaktywacja) bez konieczności zmiany kodu aplikacji ani struktury bazy danych
  • [OK] Zarządzanie tłumaczeniami parametrów zsynchronizowane z aktywacją/dezaktywacją parametrów wyszukiwania
  • [OK] Wielojęzyczność - parametrów, kategorii, interfejsu aplikacji
  • [OK] Walidacja danych na formularzu dodawania/edycji ogłoszenia
  • [OK] Integralność danych - np. dane słownikowe tylko w jednym miejscu
  • [OK] Logowanie wszelkich zmian w danych ogłoszenia
  • Synonimy słów kluczowych (kategorie, parametry) - wielojęzycznie
  • Śledzenie zmian wybranego parametru, np. ceny
  • Treść gazetowa ogłoszenia wstępnie generowana z danych internetowych z możliwością edycji na najbliższe wydanie gazetowe
  • Ustalenie punktu w czasie do kiedy użytkownik może edytować treść do gazety
  • Archiwum treści gazetowej na poszczególne wydania
  • Generowanie słów kluczowych wielojęzycznie na potrzeby kampanii AdWords?...
  • Utrzymywanie danych historycznych

Problemy

  • Fakturowanie
  • Klienci -
    • wspólni dla wszystkich systemów?
    • edycja danych klienta - przez reklamę czy ogłoszenia? które ważniejsze?
    • dzielenie się informacjami z działem reklamy odnośnie płatności, zaległości?

Myśli nieuczesane

  • CT Biuro zarządzanie ogłoszeniem poprzez warstwę pośredniczącą, która zapewni poprawność danych (WebService? lub repozytoria przez COM - do ustalenia...)
  • To samo dla zarządzania danymi klienta

Model danych

[User|Forename;Surname;Email]
[User]^[CallCenterAgent], [User]^[Customer]
[User]+1->*[Ad|Price;ParametersXml;DisplayUntil{bg:orange}]
[Ad]+1->*[AdLog]
[Ad]+1->*[AdMagazine|IssueNumber{bg:green}]
[Category|Parent]+1->*[Ad]
[Category]<->[Parameter|Name;Regex;Type;Required;IsAdvanced;IsActive]
[Ad]+1->*[Image]
[ParameterGroup]+1->*[Parameter]
[ParameterList]+1->*[Parameter]
[Ad]+1->*[InvoiceDetails{bg:blue}]
[Category]<->[ParameterList]

Kategorie, parametry, jednostki

[Category|Id;Name;Parent;Level]
[Make|Id;Name]
[Model|Id;Name]
[CategoryMake|Id]
[CategoryMakeModel|CategoryMakeId;ModelId]
[Parameter|Id;IsRequired;IsAdvanced;GroupName]
[Field|Id;Name;ControlType:DataType;Label;Tooltip]
[FieldUnit|FieldId;UnitId]
[Unit|Id;Name]
[FieldOption|Id;Name]
[Category]<1-0..*>[Parameter]
[Category]<1-Children 0..*>[Category]
[Category]<1-0..*>[CategoryMake]
[CategoryMake]<0..*- 1>[Make]
[Make]<1-Models 0..*>[Model]
[CategoryMake]<1- Models 0..*>[CategoryMakeModel]
[CategoryMakeModel]<0..* - 1>[Model]
[Parameter]+->[Field]
[Field]<1-Options 0..*>[FieldOption]
[Field]<1-Units 0..*>[FieldUnit]
[FieldUnit]<0..*-1>[Unit]