Fork me on GitHub
#fulcro
<
2021-01-19
>
Jakub Holý (HolyJak)08:01:21

@yubrshen What Alex said. In addition: I think that studying graph databases is a waste of time, Fulcro/Pathom are only a tiny subset of that. If you look at Fulcro client-side database, it is more similar to a relational database: you have a table such as :person/id with "columns" (props) such as :person/fname , :person/address . If you want data from multiple tables, you join them: [:person/fname {:person/address [:address/street]}] . This is not so different (with a little cheating) from the SQL select person.fname, address.street from person natural join address . The difference is that both the query and the returned data are not flat but a tree. But that is more less all there is to that, IMHO.

👍 6
yubrshen01:01:29

@holyjak Thanks for sharing the learning tips. What I find not intuitive is to interpret [:person/fname {:person/address [:address/street]}] as join. There might be something missing to me. I do understand the semantics, but just not familiar with idea of treating it as "join". I found this video gives me enough introduction to appreciate more the modeling of database as "datum" in terms of entity, attribute, and value: https://www.youtube.com/watch?v=tV4pHW_WOrY&amp;t=1906s The good news is that I have bitten the bullet and watched "Fulcro 3: Normalization" and making notes for maybe about 7 to 8 hours. I think that I have good handle of the idea of map/table normalization with the flat structure of id, attribute, value To me to appreciate the idea of "join", I'd interpret it as cross-reference to another flat table (map). The following is the characterization of the idea of "normalization" of map (table) of data in Fulcro that works for me: 1. Model information in terms of entity, attribute, and attribute-value; 2. the entity is presented by the map name and an id in the map, called "ident"; 3. In the case where the attribute-value involves another entity, use entity id (ident) to cross-reference to the entity, instead of placing the referred entity's map nested in the same map. A related observations: it would be really help for introduction (tutorial) to explicitly identify the prerequisite to be able to understand the new material being introduced. To the expert, it may be oblivious, but for the learner, it's really hard to know the unknown.

👍 11
henrik23:01:19

If I’m making an ident-less, query-less component (just a container to reuse functionality, really), does the distinction between props and computed-props still apply?

tony.kay23:01:28

no need for computed if it is all computed

👍 6
yubrshen01:01:29

@holyjak Thanks for sharing the learning tips. What I find not intuitive is to interpret [:person/fname {:person/address [:address/street]}] as join. There might be something missing to me. I do understand the semantics, but just not familiar with idea of treating it as "join". I found this video gives me enough introduction to appreciate more the modeling of database as "datum" in terms of entity, attribute, and value: https://www.youtube.com/watch?v=tV4pHW_WOrY&amp;t=1906s The good news is that I have bitten the bullet and watched "Fulcro 3: Normalization" and making notes for maybe about 7 to 8 hours. I think that I have good handle of the idea of map/table normalization with the flat structure of id, attribute, value To me to appreciate the idea of "join", I'd interpret it as cross-reference to another flat table (map). The following is the characterization of the idea of "normalization" of map (table) of data in Fulcro that works for me: 1. Model information in terms of entity, attribute, and attribute-value; 2. the entity is presented by the map name and an id in the map, called "ident"; 3. In the case where the attribute-value involves another entity, use entity id (ident) to cross-reference to the entity, instead of placing the referred entity's map nested in the same map. A related observations: it would be really help for introduction (tutorial) to explicitly identify the prerequisite to be able to understand the new material being introduced. To the expert, it may be oblivious, but for the learner, it's really hard to know the unknown.

👍 11