Je travaille sur un projet où j'essaie de décider entre l'utilisation d'une base de données relationnelle SQL standard ou des objets JSON pour stocker des données sur un événement ou une activité.
Le projet stockera des données sur plusieurs types d'événements, j'ai donc décidé de décrire un seul type d'événement pour cette question.
L'événement de musique en direct (décrit en détail à l'aide du schéma JSON au bas de cette question) est un objet qui stocke des données telles que le lieu de l'événement, l'heure / la date de l'événement et le coût de l'événement. L'objet d'événement de musique en direct a à la fois un à un (événement -> nom, événement -> description) et un à plusieurs (événement -> lieux, événement -> dates, événement -> types de billets ) des relations. En outre, l'objet d'événement peut contenir un ou plusieurs ID d'intervenant, qui sont liés à l'objet d'intervenant. L'objet interprète stocke des données sur les musiciens qui se produisent lors de l'événement musical en direct.
Les données seront interrogées par les utilisateurs en utilisant à la fois des événements simples ("Find me events with 'x' name") et complexes ("Find me events with 'x' music genre and 'y' within a radius of 'z' from my current) emplacement "). Les données seront soumises par les utilisateurs à l'aide d'un formulaire Web.
Comme vous pouvez probablement le voir à partir du schéma JSON défini, j'allais à l'origine utiliser des objets JSON pour stocker ces données, mais j'ai entendu des gens dire que parce que mes données sont purement relationnelles, je devrais m'en tenir aux anciennes méthodes.
J'apprécierais toute réflexion sur les avantages et les inconvénients de chaque approche compte tenu de mes besoins. Si vous avez besoin de clarifier quoi que ce soit, n'hésitez pas à demander.
{
"event": {
"eventID":{
"type":"string"
},
"eventType":{
"type":"array",
"eventTypeItem":{
"type":"string"
}
},
"eventName":{
"type":"string"
},
"eventDescription":{
"type":"string"
},
"eventVenueList":{
"type":"array",
"eventVenueListID":{
"type":"integer"
}
},
"eventURL":{
"type":"string"
},
"eventTwitter":{
"type":"string"
},
"eventFB":{
"type":"string"
},
"eventInstagram":{
"type":"string"
},
"eventEmail":{
"type":"string",
"format":"email"
},
"eventContactPerson":{
"type":"string"
},
"eventDoorTime": {
"type":"string",
"format":"date-time"
},
"eventPerformerIDList":{
"type":"array",
"liveMusicPerformerID":{
"type":"integer"
}
},
"eventSetList":{
"type":"array",
"eventPerformerID":{
"type":"integer"
},
"eventPerformerStartTime":{
"type":"string",
"format":"date-time"
},
"eventPerformerEndTime":{
"type":"string",
"format":"date-time"
}
},
"eventDateList": {
"type":"array",
"eventDateItem": {
"type":"string",
"format":"date-time"
}
},
"eventDateStartTime": {
"type":"string",
"format":"date-time"
},
"eventDateEndTime": {
"type":"string",
"format":"date-time"
},
"eventTicket":{
"type":"array",
"eventTicketType":{
"type":"string"
},
"eventTicketLowPrice":{
"type":"number"
},
"eventTicketHighPrice":{
"type":"number"
},
"eventDatesAdvancePrice": {
"type":"number"
}
}
},
"performer": {
"performerID": {
"type":"integer"
},
"performerType": {
"type":"string"
},
"performerName": {
"type":"string"
},
"performerAlternateName": {
"type":"array",
"performerAlterateNameItem":{
"type":"string"
}
},
"performerGenreList": {
"type":"array",
"performerGenreItem":{
"type":"string"
}
},
"performerURL": {
"type":"string"
}
}
}