Я нахожусь на ранних стадиях разработки ОЧЕНЬ крупной системы (это система точек продаж уровня предприятия). как некоторые из вас знают, модели данных на этих вещах могут быть очень сложными. я хочу запустить эту штуку на google app engine, потому что я хочу потратить больше своих ресурсов на разработку программного обеспечения, а не на создание и обслуживание инфраструктуры.
В этом духе я много читал о GAE и DataStore. я разработчик реляционных баз данных старой школы, и я видел несколько разных концепций того, что такое база данных без схемы, и я думаю, что выяснил, что такое хранилище данных, но я хочу убедиться, что у меня все правильно
Итак, если я прав, то это система, основанная на таблице Сорта. так что если я создаю Java-сущность
class user
public string firstname
public string lastname
и разверните его, пользователь «таблицы» будет автоматически создан и запущен. затем в последующих выпусках, если я изменю пользователя класса
class user
public string firstname
public string lastname
public date addDate
и разверните его, пользователь «таблицы» автоматически обновляется новым полем.
Теперь, в отношении данных, насколько я понимаю, они очень похожи на некоторые из чрезвычайно сложных систем, таких как SAP, где данные на самом деле очень организованы, но из-за объема их ссылочная целостность является функцией приложения, не движок базы данных. поэтому я хотел бы иметь код, который выглядит следующим образом
class user
public long id
public string firstname
public string lastname
class phone
public string phonenumber
public user userentity
и вывести телефонные номера пользователя с нуля вместо
select phone from phone inner join user as phone.userentity = user where user.id = 5
(lay off i know the syntax is incorrect but you get the point)
я бы сделал что-то вроде
select user from user where user.id = 5
then
select phone from phone where phone.userentity = user
и при этом будут получены все телефонные номера пользователя.
так что, насколько я понимаю, это не столько огромное изменение в том, как думать о структурировании данных и организации данных, сколько его большое изменение в том, как получить к нему доступ. я делаю соединения вручную с кодом, а не автоматически с движком базы данных. за этим то же самое. я прав или не знаю.