Например, у меня были пользователи, языки, словарь - они были связаны:
Код: Выделить всё
SQL> create table users
2 (user_id number constraint pk_users primary key,
3 username varchar2(30) not null
4 );
Table created.
SQL> create table languages
2 (language_id number constraint pk_lang primary key,
3 language_name varchar2(30) not null
4 );
Table created.
SQL> create table dictionary
2 (dict_id number constraint pk_dict primary key,
3 user_id number constraint fk_dict_user references users (user_id),
4 language_id number constraint fk_dict_lang references languages (language_id),
5 --
6 original_word varchar2(30) not null,
7 original_trasncriptioned_word varchar2(30) not null,
8 translated_word varchar2(30) not null
9 );
Table created.
Теперь я не могу понять, как это представлено в базе данных nosql. Правильный ли этот формат?
Код: Выделить всё
{
"users": [
{
"user_id": 1,
"username": "user1"
},
{
"user_id": 2,
"username": "user2"
},
...
],
"languages": [
{
"language_id": 1,
"language_name": "English"
},
{
"language_id": 2,
"language_name": "Spanish"
},
...
],
"dictionary": [
{
"dict_id": 1,
"user_id": 1,
"language_id": 1,
"original_word": "hello",
"original_transcriptioned_word": "hɛˈloʊ",
"translated_word": "hola"
},
{
"dict_id": 2,
"user_id": 2,
"language_id": 2,
"original_word": "hola",
"original_transcriptioned_word": null,
"translated_word": "hello"
},
...
]
}
Если да, то как я могу связать словарь.user_id или словарь.language_id с соответствующими таблицами?
Код: Выделить всё
public class Dictionary : Entity
{
public string Id { get; set; }
public string Name { get; set; }
public string LanguageId { get; set; }
public Dictionary() : base(true)
{
}
}
public class Entity
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("ttl")]
public int Ttl { get; set; }
public Entity(bool generateId = true)
{
SetDefaultTimeToLive();
if (generateId)
{
this.Id = Guid.NewGuid().ToString();
}
}
public virtual void SetDefaultTimeToLive()
{
Ttl = -1;
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... d-in-nosql