Mysql
 sql >> база данни >  >> RDS >> Mysql

Модел на база данни за 24/7 списък на персонала в казино

Благодаря, че отделихте време, за да съставите качествен въпрос. Вашите изисквания са големи и вашите спецификации на вашата система са много подробни. Успях да преведа вашите спецификации в графичен модел на данни за Neo4j. Вижте по-долу.

По-горе ще видите доста обяснителен графичен модел на данни. В случай, че не сте запознати с това, предлагам да прочетете Graph Databases:http://graphdatabases.com/ -- На този уебсайт можете да получите безплатно цифрово PDF копие на книгата, но в случай че искате да закупите хартиено копие, можете да го намерите в Amazon.

Нека разбием модела на графиката в изображението. В горната част ще видите структура за индексиране на времето, която е (година)->(месец)->(ден)->(час), която съм съкратил като Y M D H. Елипсите показват, че графиката продължава, но в името на пространството на екрана съм показал само подграфика.

Този времеви индекс ви дава начин да генерирате времеви серии или да задавате определени въпроси във вашия модел на данни, които са специфични за времето. Много полезно.

Долната част на изображението съдържа вашия корпоративн модел на данни за вашето казино. Възлите представляват вашите бизнес обекти:

  • Игра
  • Таблица
  • Служител
  • Умения

Това, което е страхотно при графичните бази данни е, че можете да погледнете това изображение и семантично да разберете езика на въпроса си, като прескачате от един възел на друг чрез техните взаимоотношения.

Ето една Cypher заявка, която можете да използвате, за да зададете вашите въпроси относно модела на данни. Можете просто да го промените леко, за да отговаря на вашите въпроси.

MATCH (employee:Employee)-[:HAS_SKILL]->(skill:Skill),
      (employee)<-[:DEALS]-(game:Game)-[:LOCATION]->(table:Table),
      (game)-[:BEGINS]->(hour:H)<-[*]-(day:D)<-[*]-(month:M)<-[*]-(year:Y)
WHERE skill.type = "Blackjack" AND 
      day.day = 17 AND 
      month.month = 1 AND 
      year.year = 2014
RETURN employee, skill, game, table

Горната заявка намира подграфиката за всички служители, които имат умението Блекджек и тяхната маса и местоположение на конкретна дата (17.01.14).

Да се ​​направи това в SQL би било много трудно. Следващото нещо, за което трябва да помислите, е импортирането на вашите данни в база данни Neo4j. Ако сте любопитни как да направите това, моля, погледнете други въпроси тук на SO и ако имате нужда от още помощ, не се колебайте да публикувате друг въпрос или да се свържете с мен в Twitter @kennybastani.

Наздраве,

Кени




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при задаване на стойности на свойства; вложеното изключение е org.springframework.beans.NotWritablePropertyException:

  2. Проверете две дата не е между две друга дата + MYSQl

  3. Как работи parse_dates с pd.read_sql_query

  4. Неефективна SQL заявка

  5. Изчакване на връзката с Laravel при свързване към база данни