Specific element must not be translated in Agile PLM such as UserName, Originator (auto translation) - oracle-agile-plm

Is there a way to prevent edge auto translation tool from translating specific fields in Agile PLM such as User Name, originator, etc.

Related

Database Management - Should I use multiple databases?

I have an issue with the planning of my program. I am not sure what I should do.
Here my idea:
The program has users, the users can create persons, those persons have many attributes and every user can create multiple persons. Also there's a table 'todo' that is made to assign tasks to persons.
(-> = attributes, --> connected tables)
Users -> username, password, email, usertype, id
Person -> id, src, firstname, middlename(s), lastname, birthdate, description, height, favourites, dislikes, hates, boundaries, disorders, fronting
--> personType, pronouns, source, fav Colors, fav Foods, kids (connection to "Person"), relationships (connection to "Person")
Todo -> id, due, title, description
--> assignedTo (connection to "Person")
My issue:
As you can see a person has multiple attributes and a user can create multiple persons with todos. And I am not sure how practical this is to handle, if the privacy is reassured and what the most efficient option is.
My Question:
Should I use a system where every user gets its own database with his persons and todos and stuff?
or
Should I use 1 Database for everything?
or
is there even a better solution?
I would only consider the 'multiple databases' solution if it was an answer a technical problem that you have (legacy datasources that you don't want to merge for instance).
The security concerns that you have regarding people accessing data that they shouldn't have is important, but the solution is a solid security model, and not necessarily segregating the data in multiple databases
Since you are starting your program and can choose your option in a more functional / data model driven approach, and as such the single database option is way more friendly.
You will be able to properly model and enforce the relationships between your objects, and define a solid model.

Why An Address Data Is An Entity?

I always think that an address data is a value object since it is immutable and its equality is defined by the same data in all fields. For example, a billing address in a part of a payment and a shipping address is a part of an order or a fulfillment. When someone changes her/his address, a new address data is needed. But, every single sample code/application, I have run into, has an address data as an entity, which its DB table has its own ID. It would make a sense if a system wants to keep track of all addresses where all business activities/events occur. I, however, don't see such intention in those sample code/application. Do I miss something in the regard?
You can't generalize.
Examples are one thing, real world problems are another. You can't say that for all projects one solution fits it all.
I'll give you an example I had in a project conserning aggregate roots.
Logically and legally a subsidiary is an extension of its company, eg. Walmart has its HQ with tax number and everything and subsidiaries without tax number where the actual stuff is sold. Logically, for applying to a goverment funding or something similar, the HQ sends a request for its subsidiary. Here, Walmart HQ is an aggregate root and its subsidiary is a part of an aggregate in funding procedures.
This is a logical example.
What I had is that a subsidiary can legally apply for state funding without the knowledge of HQ! Therefor, HQ is not an aggregate root anymore, but a subsidiary is. It was extremely illogical, but those were the business requirements.
The point is the same with your value object question. Although you can use Address as an example that it is an entity or a value object, it is the requirements of the business that dictate what an address is, and not what is logical.
Pre-note: there are domains where an address should be an entity, like a mail service; we do not talk about those domains
From my experience, people tend to implement an address as an entity because of the persistence: it is easier to persist an address as a sub-entity to a relational database than to persist a value object because of the entities ID that act as primary keys in the storage table.
However, there are tactics that permit storing a value object as an database entity but still using it just as a value object, as it should be. Vaughn Vernon shows how to do this in his book, Chapter 6, sub-chapter Persisting Value Objects.

Advanced targeting like Facebook Sharings (Flexible ACL) DB Design

I've been trying to develop an internal staff portal for our company. There are departments, job grades, working areas, roles (user, editor, admin, super admin, etc...) and special groups (executives, etc) for user grouping.
User must have one (only one) department.
User must have one (only one) job grades.
User must work in minimum one area.
User must have one (only one) roles.
User may have one or more special groups.
Job grades and roles are hierarchical (an grade or role may be inherited of another one) but other ones not.
Users will see only allowed menus and access permitted routes.
User will also select which users can view it when posting a new content.
e.g:
Combination 1: (IT or Finance department) and (Job Grade is one of 9,10,11) and (Area is one of 1,5,8) and (Exclusive special group is one of 1,5,8) except user id=1
Combination 2: (HR department) and (Job Grade is 11) and user_id=3,4,5
Combinations can be related as AND/OR among themselves like Combination 1 AND combination 2
So, there will be lots of contents and every content will have different group permissions. I try to create a DB schema but it's very hard to get all contents that is visible to logged in user. Serialized data would be good for saving combination sets in db but it looks like impossible with serialized data. Is there an advantage to using MongoDB for this issue? How can i save combinations of group/user permissions in tables also?
I researched lots of ACL and RBAC examples but can't find the optimal solution. Please help.
Btw, i use Laravel Framework.
Thanks.
You need to look into attribute-based access control (ABAC - Wikipedia) and the eXtensible Access Control Markup Language (XACML). NIST, the National Institute of Science & Technology gives a great intro to ABAC here.
XACML will give you the ability to express fine-grained access control policies that use you attributes. In your question you have:
user attributes
department
job grade
working area
role
group
object (resource) attributes
content type
content location
content classification
With XACML you can write rules such as:
A user with grade==1 can do the action==edit on content of type==post
if content.department==user.department.
You can have as many rules as you like including conflicting rules or environment rules (deny access before 9am).
Have a look at the ALFA plugin for Eclipse to write your own policies (Wikipedia | Download).
HTH,
David

Converting medical datasheet into MySQL database design

I am trying to develop a medical symptom checker app and therefore I need to convert my excel datasheet which contains over 190k of records into a MySQL database. I have asked and read multiple related questions before, but I still find it difficult to create an efficient/proper database design.
Please take a look at the design of the app (1st image) to get an idea how the app works.
Steps user should follow to check symptom(s)
User chooses gender, age and bodypart
App shows all (common/less common) symptoms of chosen bodypart
User chooses symptom
Apps asks if there are more symptoms that apply (only if symptom has additional symptoms in database). User can tick up to 2 additional symptoms.
App shows all (common/less common) diseases of chosen symptom and additional symptoms. The order (weight) of the diseases is dependent on the selected age, gender, bodypart, main symptom and selected additional symptoms.
User chooses disease
App shows disease information
Attributes:
age, gender, bodypart, symptom, disease
age: the app queries the database using id's; 0-5 is 1, 6-17 is 2, 18-59 is 3, 60+ is 4
gender: the app queries the database using id's; male is 1, female is 0
bodypart: the app queries the database using id's; 'Head front' is 1, 'Neck front' is 2 etc...
symptom: name, critical. critical is created to tell the user that he/she needs to contact their doctor immediately.
disease: name, critical, description, tests and treatment. critical is created to tell the user that he/she needs to contact their doctor immediately
I already have a database which contains all data and possible combinations of input/output. Unfortunately it is not designed to be used in an app (2nd image).
As you can see in the 2nd image, the order of the diseases (disease weight) is dependent on the selected age, gender, bodypart, symptom and selected additional symptoms (additional symptoms that apply). Each symptom may have up to 2 additional symptoms. The user can check either 0, 1 or 2 of the additional symptoms and the order of the disease will be different for each of these options.
Each symptom is either common (1) or less common (0). It depends on the user input (age, gender, bodypart).
Each disease weight <= 5 is considered to be a common disease. Diseases with weight > 5 are considered as less common diseases. Of course it is also depends on the user input (age, gender, bodypart, symptom, additional symptoms). I have tried so many things but I still don't know how to design this feature in a proper way.
Could anyone help me designing a suitable database?
UPDATE 1
Basically we need to keep 3 queries in mind when designing the database
Get all symptoms (symptom.id, symptom.name, symptom.critical, symptom community (common/less common)) that belong to the combination of selected age = $age, gender = $gender AND bodypart = $bp
Get all additional symptoms (symtpom.id symptom.name) of selected symptom
Get all diseases (disease.id, disease.name, disease.critical disease weight) that belong to the combination of selected age, gender, bodypart, main symptom and additional symptoms.
App design
Excel datasheet
A Disease table is fairly simple; it contains columns H..O, with duplicates removed. Plus there is a unique ID for each row. (See AUTO_INCREMENT) I'm unclear on whether disease_weight belongs in the Disease table or somewhere else.
Symptoms might be best implemented as a SET datatype.
Another table contains columns of gender, age_range, body_part, symptoms, and disease_id (and maybe disease_weight).
The main SELECTs that I see are
SELECT symptoms FROM table2
WHERE age_range = $ar
AND gender = $gender
AND body_part = $bp
AND FIND_IN_SET(symptoms, $symptom1);
To get the possible secondary symptoms.
(You have not explained how a user will enter an age_range; I assume that will end up in your cgi language as $ar. (Etc)
SELECT d.name, ...
FROM Table2 t
JOIN Diseases d ON d.disease_id = t.disease_id
WHERE age_range ...
AND symptoms & $symptoms;
(I may have a syntax error on the SET operators.)
If there are other SELECTs, you need to think about them now, not later.
You have not explained how this dataset will be updated; that could be an issue, too.
You did not actually ask how to get from Excel to MySQL; let's finish the database design first.
I know this question is outdated. But from my research, a lot of symptoms checker application are using API to access certain data.
From here, is one of the API used. Not sure if you are used your own created database but that is bad practice because the infromation that you used might be wrong and outdated.

Business Objects Reporting Standards

We are trying to set our BI team's reporting standards for Business Objects Universe Designer and Web Intelligence tools. We set some standars like below.
What are your ideas about these standards? Could you please share your standards documents?
Name the universe based on the application.
Give proper name universe objects (classes, dimensions, measures etc) according to
business terminology and being explicit in the definition. For
instance, an object called 'Sales' could be interpreted many
different ways. Is it Sales Revenue, Count of Sales Orders, Count of
Sales Order Lines, Average Sales Amount.
Company logo is put on the upperleft side of the report.
User prompts and last refresh time is put on the upper-right side of the report.
The title and report name describes the scope of the data (for example, university wide, unit specific, school/college level) and any conditions in the report (for example, term, fiscal year, department ID).
The columns of data are arranged in logical order.
When prompts are used, they model how the data should be entered. For example, “Enter the term (e.g. 1760)”
I think that this is a bit off topic for stackoverflow, and some of it is not clear or is commonsense anyway (eg. "columns of data arranged in logical order"), but I would suggest:
that every universe be associated with a three character code (eg. SAL, REV etc).
that every report be uniquely identifiable by a number, prefixed by the Universe code.
that non-trivial objects have as part of their definition a SQL-format comment giving their name and folder.
There two aspects :
Considering the technical aspect of the universe
Considering the end-user aspect of the universe
Technical aspects :
Layout of your tables should reflect your navigation
Version information/changes in either comment / hidden objects
try to use aliases as much as possible to show in what function your table is used.
try to refactor used constants in separate objects and use the #select to use them.
try to have a hierarchic naming convention so that the name will imply the navigation.
find a fitting naming convention for your connections.
User aspects :
DON'T DO THIS folder = table name , object = column name, it comes from dragging and dropping your tables.
object name is not literature, you are limited. It should be clear what the object is. Add comments always comments.
Limit number of folders, limit folder depth, limit number of objects in a folder.
Order the objects based on their use inside folder(most used on top).